it-swarm.com.ru

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

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

enter image description here

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

40
Curt

Puoi provare квесто:

  1. Esegui la pre-compilazione contro l'applicazione web.

  2. Отмена каталога каталогов (виртуальная директория в IIS _ картографическом файле); распространение дистрибутива файла (Dell'applicazione Web).

Nella finestra di output и возможная проверка в режиме реального времени. Ad esempio, nella prima fase, se ci sono alcuni errori che si verificano solo alla precompilazione, ciò causerà il fallimento dello Этап 1. Выступать в качестве справочного пособия по конфигурации в режиме реального времени. Ad esempio, виртуальный каталог IIS не является импортозависимой версией ASP.NET Corctata o файл файла alcuni vecchi sono bloccati e impediscono che vengano отмены За то, что я не знаю, почему это так?IIS проблема конфигурации бокового и среднего возраста ...

ссылка alla fonte

Ap возможно, прежде всего, выходной premendoCtrl+W,O,.

16
NaveenBhat

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

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

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

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

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

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

49
SimonGoldstone

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

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

8
Nick

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

4
vt100

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

2
José Lugo

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

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

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

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

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

2
Alexey Shevelyov

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

1
Tammy Spencer

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

1
nvasquez

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

1
Dilshad

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

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

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

0
NeilR

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

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

0
imlarry

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

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

0
sathish v

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

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

0
macnerd

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

0
Sam