Почему ссылка на мой проект не попадает в пакет веб-развертывания в Visual Studio? - PullRequest
5 голосов
/ 22 июля 2011

У меня есть решение Visual Studio 2010 с двумя проектами:

  1. Веб-приложение ASP.NET MVC 3.
  2. Библиотека классов.

Приложение MVC имеет ссылку на проект для библиотеки классов.

Когда я использую опцию «Build Deployment Package» в Visual Studio для создания zip-файла с моим веб-приложением для развертывания, оно невключите библиотеку классов. Таким образом, после развертывания я получаю исключение из-за отсутствующей сборки.

Я убедился, что для ссылки на проект установлено значение "Копировать локально = true". Когда вы создаете и отлаживаете сайт, все работает нормально, и библиотека классов находится в папке bin.Только при создании пакета развертывания он пропадает.

Если я переключаюсь с ссылки на проект на ссылку на прямую сборку, указывающую на файл bin / Debug / ClassLibrary.dll, пакет правильно собирается и включает в себябиблиотека классов. Я вижу проблему только тогда, когда это ссылка на проект.

Как получить библиотеку классов в качестве ссылки на проект для правильного включения в пакет веб-приложения?

Ответы [ 2 ]

1 голос
/ 14 декабря 2011

Я не уверен, как это исправить, если вы выполняете развертывание из VS.NET, но я выяснил, как это сделать из сценария MSBuild.

Основной синтаксис для созданияПакет MSDeploy / WebDeploy .zip для .csproj в MSBuild выглядит следующим образом:

<MSBuild Projects="Path\To\Project.csproj"
         Targets="ResolveReferences;Package"
         Properties="Configuration=Release;DeployOnBuild=true;DeployTarget=Package;PackageLocation=Path\To\Output.zip" />

Обратите внимание на Targets = "ResolveReferences; Package".Я начал с Targets = "Package", но это работает только наполовину.

Очевидно, что если вы хотите получить сборки, созданные из ссылок на проекты, вам сначала нужно вызвать ResolveReferences.Просто сборка пакета не сделает этого, и вам не хватит любых сборок, которые включены в выходные данные проекта в результате ссылок на проекты.

0 голосов
/ 22 июля 2011

Это что-то глупое, как только иметь профиль клиента в библиотеке классов?

...