Visual Studio 2010 веб-функция публикации, не включая все библиотеки DLL - PullRequest
52 голосов
/ 12 мая 2010

У меня есть приложение ASP.NET MVC 2.

  • Веб-проект содержит ссылку на SomeProject
  • SomeProject содержит ссылки на ExternalAssembly1 и ExternalAssembly2.
  • SomeProject явно вызывает в ExternalAssembly1, но НЕ ExternalAssembly2.
  • ExternalAssembly1 вызывает в ExternalAssembly2

Когда я выполняю локальную сборку, все круто. Все библиотеки DLL включены в папку bin \ debug. Проблема в том, что когда я использую команду «Опубликовать в Интернете» в Visual Studio 2010, она развертывает все, кроме ExternalAssembly2.

Похоже, что игнорируются сборки, которые не используются напрямую (помните, ExternalAssembly2 используется только ExternalAssembly1).

Можно ли как-то сказать Visual Studio 2010 включить ExternalAssembly2?

Я могу написать фиктивный метод, который вызывает в ExternalAssembly2. Это работает, но я действительно не хочу иметь фиктивный код с единственной целью заставить VS2010 опубликовать DLL.

Ответы [ 13 ]

1 голос
/ 11 июля 2011

У меня была такая же проблема сегодня. Я опубликовал свой веб-проект и понял, что там не все справочные библиотеки DLL. В частности, косвенные ссылки на DLL.

Оказывается, в каталоге, в котором я публиковал, не было места на диске (общий сетевой ресурс). У меня было достаточно места для публикации всех файлов, за исключением нескольких косвенных ссылок DLL. Грустная часть - то, что VS08 не выдал никаких ошибок. Просто опубликованные файлы обычные. Я очистил место на жестком диске, и все работало нормально.

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

1 голос
/ 04 марта 2011

У меня возникла такая же проблема с веб-проектом.У меня есть веб-проект, который ссылается на сборку A, которая ссылается на сборку B. Некоторое время он работал нормально, но сегодня он был сломан.Я перестроил решение, и на этот раз все правильно развернуло.

0 голосов
/ 18 января 2011

У меня та же проблема, и это ошибка VS2010, если есть ссылка, например: Веб-проект -> пользовательский проект -> сборка1 -> (косвенно) сборка2.

Пока я нахожу, что если я ссылаюсь на Assembly1 в веб-проекте, то Assembly2 включается в папку bin. Поэтому мне пришлось добавить дополнительную ссылку, например: Веб-проект -> Assembly1 -> (косвенно) Assembly2. Затем VS может распознать Assembly2 и включить его файл DLL в действие публикации.

...