Подтвердить что ты не робот

"Опубликовать не удалось", но сборка выполнена успешно?

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

enter image description here

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

4b9b3361

Ответ 1

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

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

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

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

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

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

Ответ 2

Я была такая же проблема. Кошмар, чтобы определить проблему, потому что журналы и результаты не показывают ошибок или сбоев. Я просто получаю "Построить: 39 успешно" и "Опубликовать: 1 не удалось".

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

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

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

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

Изменить. Для чего бы то ни было, эта проблема возникает в VS 2008, 2012 и 2015, но не возникает в 2017 году.

Ответ 3

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

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

Ответ 4

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

Ответ 5

Не уверен, что это происходит в разных версиях 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 без базовой контрольной точки контроля качества.

Ответ 6

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

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

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

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

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

Ответ 7

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

Ответ 8

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

Ответ 9

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

Ответ 10

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

Ответ 11

Привет Существует также случайное опубликование не существует. если проект перемещен/скопирован из другого места или указан удалено по ошибке.

Ответ 12

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

Ответ 13

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

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

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

Ответ 14

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

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

Ответ 15

У меня была такая же проблема с 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'. 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).

Ответ 16

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

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

Ответ 17

После попытки перестроения, когда другие проекты в моем решении могли правильно публиковаться и изменив мое местоположение публикации на диск 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 для проекта и соответствия его цели цели публикации и конфигурации активного решения я смог снова успешно опубликовать.

Ответ 18

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

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

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

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

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

Ответ 19

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

Ответ 20

Я столкнулся с той же проблемой, что и сейчас, ее разрешили. удалить .rdlc файл из вашего проекта, поможет вам определенно.