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

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

enter image description here

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

Ответы [ 18 ]

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

После попытки перестроения, когда другие проекты в моем решении могли правильно публиковать и изменили мое местоположение публикации на диск C: (локально подключенный) вместо нажатия на подключенный сетевой диск, у меня все еще была проблема, связанная с только вывод ошибок сказал:

========== Build: 5 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
========== Publish: 0 succeeded, 1 failed, 0 skipped ==========

Мое решение нацелено на x86, но я думаю, что во время Git Merge этот проект переключился на Any CPU. После создания профиля x86 для проекта и соответствия его цели цели публикации и конфигурации активного решения я смог снова успешно опубликовать.

0 голосов
/ 18 февраля 2019

я знаю, что поздно, но я думаю, что это следует использовать для кого-то, кто ищет этот запрос.

просто удалите все ваши пакеты nuget, затем очистите и перестроите решение, теперь нажмите на публикацию, убедитесь, что оно работает, и выувидит, что публикация начинается и работает правильно теперь

0 голосов
/ 09 февраля 2019

У меня была такая же проблема с VS2017 с проектом веб-сайта. Сборка сработала, но публикация дала мне ошибку: Error CS0012: The type 'System.Net.Http.HttpMessageHandler' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Все мои проекты уже имели ссылку на System.Net.Http, так что это было очень запутанно.

Чтобы исправить это, мне пришлось скопировать System.Net.Http.dll в папку моего проекта / bin моего веб-сайта, чтобы команда publish могла найти ее и скопировать на мой веб-хост. Я обнаружил System.Net.Http.dll, просмотрев ссылки на другие проекты (библиотека классов), затем свойства System.Net.Http.dll и увидев путь (C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework.NetFramework \ v4.6 \ System.Net.Http.dll).

0 голосов
/ 16 ноября 2018

У меня есть несколько пользовательских элементов управления, которые зарегистрированы в web.config и имеют ClassName в заголовке файла .ascx. Для обычных сборок все работает нормально, но при публикации эти имена классов больше не распознавались. В какой-то момент я обнаружил, что ошибки были не в моих обычных файлах кода, а в копиях во временном каталоге для публикации.

У меня включена функция «Прекомпиляция во время публикации» (ее можно найти в меню «Настройки»> «Параметры публикации файлов»). Отключение этой опции сработало для меня.

0 голосов
/ 05 ноября 2018

Есть много предложенных решений для этого. Я думаю, что они усложняют проблему. Я нашел следующее работало для меня:

  1. Найдите папку obj (Release или Debug) в вашем решении
  2. В папке Release или Debug удалите СОДЕРЖАНИЕ папки 'AspnetCompileMerge'

Теперь попробуйте и опубликовать.

0 голосов
/ 14 октября 2018

Со мной все было просто - папка dist была заблокирована. Я открыл его разблокировщиком, и публикация возобновилась.

0 голосов
/ 02 августа 2018

Что вызвало мою проблему, было немного по-другому, но имеет сходство с некоторыми из причин, указанных выше.

Мне удалось удалить мою локальную копию данного приложения и выполнить полный сброс GIT, чтобы получить наиболеепоследние из репозитория под вопросом.Это, в свою очередь, уничтожило файл web.config (который не был сохранен в репозитории GIT по разным причинам).

Это приводит к тому, что информация о конфигурации для различных пакетов NuGet «теряется» (так как она была сохранена вweb.config).

К счастью, я «создал резервную копию» файла web.config, поэтому, как только я выяснил, что его там нет (миграция не удалась из-за невозможности подключения к базе данных), ясмог заменить его.

Попытался опубликовать снова, после исправления web.config, и все работало отлично.

0 голосов
/ 14 июня 2013

В моем случае я публиковал в каталог на подключенном сетевом диске, но панель / окно Вывод указывала, что местоположение не существует.Путь был правильный, и диск был полностью доступен.Проблема решилась, когда я заново установил путь для публикации в Visual Studio с помощью кнопки ... .

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