Что я могу сделать, чтобы в папке _PublishedWebsites отсутствовали библиотеки DLL - PullRequest
5 голосов
/ 10 января 2012

Мой проект IIS ссылается на проект установки, который ссылается на проект NServiceBus, в котором есть пакет nuget для dll:

IISProject-> SetupProject-> NServiceBusProject-> NugetPackage.

Когда я запускаю автоматическую сборку (TFS), NugetPackage.dll и NServiceBusProject копируются в выходную папку.Но они не копируются в папку _PublishedWebsites.(Но все остальные необходимые мне dll скопированы.)

Я не знаю, как заставить эти файлы автоматически копироваться.

Общий ответ в Интернете - установить CopyLocal= ПравдаНо это уже верно для ссылок NugetPackage и NServiceBusProject.

Кто-нибудь знает, как сказать: «Я действительно хочу, чтобы вы включили зависимые проекты в опубликованные сайты?

Или есть что-то еще?Я могу посмотреть?

1 Ответ

3 голосов
/ 13 февраля 2014

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

Установите событие пост-сборки для проекта, который вы фактически строите.В событии сборки вы можете ссылаться на ваше текущее местоположение, используя переменную $(ProjectDir).Установите путь, который указывает на «нормальное» местоположение dll, в котором вы нуждаетесь после того, как его проект был построен.Я думаю, что в вашем случае это будет каталог bin проекта NServiceBus.

Вы можете попасть в каталог "_PublishedWebsites", используя переменную $(WebProjectOutputDir).При локальной сборке это указывает на тот же каталог, что и проект, который создается.Однако, когда msbuild вызывается с нестандартным выходным каталогом (он же из TFS), он изменяется на каталог публикации.

xcopy /Y /S "$(ProjectDir)..\path to needed dll" "$(WebProjectOutputDir)\bin"

С этим скриптом ваши сборки должны работать как локально, так и в вашей среде сборки.Единственным недостатком является то, что он немного хрупкий, потому что вам нужно указать точное имя и относительное местоположение пропавших dll.

...