Ответ 1
Поэтому я заставил его работать.
Проблема была в версии "Microsoft.Net.Compilers". Я понизил рейтинг от версии 2.6.1 до версии 2.4.
Я не знаю, почему так, если кто-то знает, было бы здорово знать.
У меня есть проект MVC, который по неизвестной причине отказывается публиковать в локальной папке на ПК.
В журнале указано следующее:
3>------ Publish started: Project: Admin, Configuration: Release Any CPU ------
3>Connecting to D:\Deploys...
3>Project "Admin.csproj" (GatherAllFilesToPublish target(s)):
3> Building with tools version "14.0".
3> Target "ValidateMSBuildToolsVersion" skipped. Previously built unsuccessfully.
3>Done building project "Admin.csproj" -- FAILED.
3>
========== Build: 2 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========
========== Publish: 0 succeeded, 1 failed, 0 skipped ==========
У меня не было проблем с отладкой либо в конфигурации релиза, либо отладки.
Поэтому я заставил его работать.
Проблема была в версии "Microsoft.Net.Compilers". Я понизил рейтинг от версии 2.6.1 до версии 2.4.
Я не знаю, почему так, если кто-то знает, было бы здорово знать.
Извините за повторное открытие потока, но для меня Очистка решения работала на .NET.Compilers v2.7 (Visual Studio 2015).
понизить "Microsoft.Net.Compilers" с v2.9.0 до v2.4.0 работает как прелесть
Мне удалось полностью решить мою проблему, удалив пакет NuGet "Microsoft.Net.Compilers" вместо понижения до версии 2.4.0.
(В течение некоторого времени ошибка публикации исчезла, если бы я просто перезапустил VS, но в конце концов это перестало работать.)
Сначала выберите режим (Debug или Release). Затем щелкните правой кнопкой мыши на решении/проекте, затем выберите Очистить. Затем выберите Rebuild. Затем опубликуйте.
Это случилось со мной, это был простой случай использования int в вызове ViewComponent из шаблона бритвы, когда этот аргумент должен был быть Guid. По какой-то причине Intellisense не взял его, мне пришлось включить подробное подробное описание, чтобы увидеть ошибку в процессе сборки.
У меня была эта проблема в Asp.net Core 2 MVC 2.1 Так что в моем решении не было Microsoft.Net.Compilers. Я попытался перестроить все проекты, выгрузить/загрузить снова, но без изменений.
1) Итак, я обновил VS 2017 с 15.7.3 до 15.8.7
2) Затем удалил все содержимое каталога bin/release из каждого проекта в решении.
3) Затем удалил все содержимое каталога obj из каждого проекта в решении.
4) Затем перестроил все проекты по одному.
Затем попытался опубликовать, и это удалось.
Возможно, если бы я попытался из шага 2 в старой Visual Studio, это было бы успешно.
Я создавал и публиковал из Visual Studio 2015, так как это версия Visual Studio, выбранная Селектором версий, когда я открывал файл решения.
Вместо этого я попытался открыть свой файл решения из Visual Studio 2017, и мне это удалось опубликовать.
Я переключился на C# 7.3
в Свойствах> Сборка> Дополнительно, но случайно сделал это только для конфигурации Debug. При публикации (используя конфигурацию Release) он все еще использовал C# 7.0
, в котором отсутствовали некоторые языковые функции, которые я использовал.
Ошибки не были видны на панели Список ошибок, только на панели Вывод.
Установка языковой версии C# 7.3
для "Все конфигурации" решила ее для меня.
При этом использовалась текущая версия Visual Studio 2017, пакет Microsoft.Net.Compilers
, не включенный в проект.
Попробуйте удалить пакет Microsoft.Net.Compilers
Nuget.
Я много чего перепробовал, но ничего не получилось. Я сделал это, и публикация прошла успешно. Чтобы быть уверенным, я восстановил свой проект из BitBucket в исходное состояние, проверил, что публикация не удалась, снова удалил пакет nuget, и он заработал.
У меня была похожая проблема. Проект строился нормально, но когда я его опубликовал, Azure выслал мне ошибки.
Мой целевой проект .NET Framework был версии 4.6.2, и я обновлял пакеты Nugget, к сожалению, я обновил свои .NET-компиляторы до последней версии, и она не была совместима с моей целевой .NET-версией. Вы должны увидеть это здесь:
Я исправил это путем понижения .NET-компиляторов до версии, совместимой с моим .NET Framework (В моем случае, для использования 4.6.2 framework мне нужно использовать .NET Compiller 2.10).