Проект строит, но не может публиковать

У меня есть проект 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 ==========

У меня не было проблем с отладкой либо в конфигурации релиза, либо отладки.

Ответ 1

Поэтому я заставил его работать.

Проблема была в версии "Microsoft.Net.Compilers". Я понизил рейтинг от версии 2.6.1 до версии 2.4.

Я не знаю, почему так, если кто-то знает, было бы здорово знать.

Ответ 2

Извините за повторное открытие потока, но для меня Очистка решения работала на .NET.Compilers v2.7 (Visual Studio 2015).

Ответ 3

понизить "Microsoft.Net.Compilers" с v2.9.0 до v2.4.0 работает как прелесть

Ответ 4

Мне удалось полностью решить мою проблему, удалив пакет NuGet "Microsoft.Net.Compilers" вместо понижения до версии 2.4.0.

(В течение некоторого времени ошибка публикации исчезла, если бы я просто перезапустил VS, но в конце концов это перестало работать.)

Ответ 5

Сначала выберите режим (Debug или Release). Затем щелкните правой кнопкой мыши на решении/проекте, затем выберите Очистить. Затем выберите Rebuild. Затем опубликуйте.

Ответ 6

Это случилось со мной, это был простой случай использования int в вызове ViewComponent из шаблона бритвы, когда этот аргумент должен был быть Guid. По какой-то причине Intellisense не взял его, мне пришлось включить подробное подробное описание, чтобы увидеть ошибку в процессе сборки.

Ответ 7

У меня была эта проблема в 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, это было бы успешно.

Ответ 8

Попробуйте открыть решение с помощью Visual Studio 2017

Я создавал и публиковал из Visual Studio 2015, так как это версия Visual Studio, выбранная Селектором версий, когда я открывал файл решения.

Вместо этого я попытался открыть свой файл решения из Visual Studio 2017, и мне это удалось опубликовать.

Ответ 9

Я переключился на C# 7.3 в Свойствах> Сборка> Дополнительно, но случайно сделал это только для конфигурации Debug. При публикации (используя конфигурацию Release) он все еще использовал C# 7.0, в котором отсутствовали некоторые языковые функции, которые я использовал.

Ошибки не были видны на панели Список ошибок, только на панели Вывод.

Установка языковой версии C# 7.3 для "Все конфигурации" решила ее для меня.

При этом использовалась текущая версия Visual Studio 2017, пакет Microsoft.Net.Compilers, не включенный в проект.

Ответ 10

Попробуйте удалить пакет Microsoft.Net.Compilers Nuget.

Я много чего перепробовал, но ничего не получилось. Я сделал это, и публикация прошла успешно. Чтобы быть уверенным, я восстановил свой проект из BitBucket в исходное состояние, проверил, что публикация не удалась, снова удалил пакет nuget, и он заработал.

Ответ 11

У меня была похожая проблема. Проект строился нормально, но когда я его опубликовал, Azure выслал мне ошибки.

Мой целевой проект .NET Framework был версии 4.6.2, и я обновлял пакеты Nugget, к сожалению, я обновил свои .NET-компиляторы до последней версии, и она не была совместима с моей целевой .NET-версией. Вы должны увидеть это здесь:

Описание компиляторов .NET

Моя целевая структура

Я исправил это путем понижения .NET-компиляторов до версии, совместимой с моим .NET Framework (В моем случае, для использования 4.6.2 framework мне нужно использовать .NET Compiller 2.10).