«Опубликовать не удалось», но сборка прошла успешно? - PullRequest
43 голосов
/ 14 ноября 2011

При использовании Visual Studio 2008, когда я «Публикую веб-сайт», приложение собирается правильно, но затем я получаю сообщение «Ошибка публикации»:

enter image description here

Что возможноЕсть причины для этого, и как я могу предотвратить это?

Ответы [ 18 ]

53 голосов
/ 02 февраля 2018

У меня была такая же проблема. Кошмар, чтобы идентифицировать проблему, потому что журналы и выходные данные не показывают ошибок или сбоев. Я просто получаю «Build: 39 успешно» и «Опубликовать: 1 не удалось».

Я решил эту проблему, систематически удаляя все пакеты NuGet по одному (и удаляя код, ссылающийся на него), пока не обнаружил нарушающий пакет.

Это занимает много времени!

Однако, ответ для меня был Microsoft.Net.Compilers .

Понятия не имею, как я закончил с этим в моем проекте, но как только я удалил этот пакет, все снова стало хорошо.

Редактировать - эта проблема возникает в VS 2008, 2012 и 2015 годах, но не возникает в 2017 году.

16 голосов
/ 14 ноября 2011

Вы можете попробовать это:

  1. Выполнить прекомпиляцию для веб-приложения.

  2. Очистить целевой каталог (виртуальный каталог вIIS или папку с физическими файлами) и разверните все файлы (веб-приложения) в целевом каталоге.

В окне вывода вы можете проверить, на каком этапе произойдет сбой операции публикации веб-сайта.,Например, на первом этапе, если есть какая-то ошибка, которая произойдет только при предварительной компиляции, это приведет к сбою на этапе 1.Или несколько раз, если в целевом каталоге что-то настроено неправильно.Например, виртуальный каталог IIS не установлен на правильную версию ASP.NET, или некоторые старые файлы заблокированы и не позволяют их очистить.В основном, сбой публикации будет вызван проблемой конфигурации на стороне IIS, такой как настройка аутентификации ....

Ссылка на источник

Вы можете открыть окно вывода с помощьюнажатие Ctrl + W , O .

9 голосов
/ 11 мая 2012

Иногда это потому, что вам нужно запустить VS от имени администратора, чтобы иметь возможность записи в целевой каталог.

Проверьте выходные сообщения, они должны помочь вам решить проблему

4 голосов
/ 21 июля 2015

Мне пришлось скопировать проект в C:\a\ и затем опубликовать.Я подозреваю проблемы с длинным путем.Странно, но у меня сработало.

3 голосов
/ 16 июля 2018

Не уверен, что это происходит в разных версиях Visual Studio, но, по крайней мере, в версии 2015 Professional Edition, проблема возникает, когда мы пытаемся обновить все пакеты Nuget из решения с помощью диспетчера пакетов.

Как указал @SimonGoldstone, проблема вызвана пакетом "Microsoft.Net.Compilers" .По умолчанию пакет добавляется в решение при создании нового веб-приложения.Версия 1.0.0 по умолчанию не представляет никаких проблем.Я смог продолжать тестирование с последними версиями до 2.4.0, и все работает нормально, но с 2.6.0 впредь наступает время, когда все начинается.Если обновление строго требуется, я бы рекомендовал обновить вышеупомянутый пакет до версии 2.4.0.После некоторого исследования кажется, что некоторые ошибки в более поздних версиях, чем 2.4.0, введены и не исправлены в долгосрочной перспективе.Что любопытно, так это то, как эта проблема включается в Nuget без базовой контрольной точки контроля качества.

3 голосов
/ 19 марта 2018

Вывод таков: попробуйте другую версию VS и посмотрите, справится ли она с этим.

Вот что это сделал для меня.

У меня VS VS Pro и сообщество Visual Studio 2015.Я вроде как использую тот или иной для работы над моим проектом MVC, и все было хорошо.Тогда внезапно VS 2013 не мог опубликовать, хотя он будет работать просто отлично.Там не было никаких ошибок, кроме какого-то глупого ... код не возвращается из всех путей ...

Так что, когда я открываю его в VS 2017 - он опубликовал тот же проект просто отлично.Я подозреваю, что проблема компиляции - потому что это была стадия, на которой она потерпела бы неудачу.

Надеюсь, это поможет вам сэкономить немного времени.

1 голос
/ 03 января 2013

Проверьте каталог проекта BIn.там должна быть DLL вашей страницы или элемента управления.который должен быть воссоздан во время публикации.Поэтому исключите или удалите его

1 голос
/ 30 сентября 2016

Убедитесь, что вы очистили целевую папку (вручную) перед публикацией.Иногда vs нельзя удалить файл, что приведет к неудачной публикации

1 голос
/ 25 февраля 2016

Я столкнулся с этой же проблемой сегодня, и это было связано с файлом Thumbs.db, который был создан, когда я открыл папку с изображениями для поиска изображения.Я удалил файл, и проект успешно развернут.Надеюсь, что это поможет кому-то еще в такой же ситуации.

0 голосов
/ 11 апреля 2019

Если вы выбрали «Удалить все существующие файлы перед публикацией» в диалоговом окне публикации в Интернете, убедитесь, что Visual Studio запущен с правами администратора.Щелкните правой кнопкой мыши Visual Studio и выберите Запуск от имени администратора.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...