В другом месте в сети, можно найти, что рекомендации на использовании чего-то вроде этого моделируют функцию Publish в IDE VS 2005-2008 от командной строки (я надеюсь, что не проваливал синтаксис!):
msbuild /t:ResolveReferences;_CopyWebApplication /p:BuildingProject=true;OutDir=C:\inetpub\wwwroot\ blah.csproj
Теперь, это похоже на прекрасную копию .dll. Однако существуют определенные конфигурационные файлы и обрабатывают по шаблону файлы, которые копируются в папку мусорного ведра, которые необходимы, чтобы приложение работало. Например, конфигурационный файл NHibernate обнаруживается в blah.csproj как:
<None Include="blah.cfg.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
В то время как использование Публикует из копий IDE этот файл, как это должно, вышеупомянутая цель _CopyWebApplication не сделать. Мне нужен этот файл, который будет скопирован в сценарии сборки. Это - желаемое поведение для _CopyWebApplication? Какие-либо рекомендации о том, как зафиксировать это?
РЕДАКТИРОВАНИЕ 21.04.2010:
Позвольте мне разъяснить, что мы ограничены (на данный момент) VS 2005 и проекты VS 2008 года, и что наши сценарии сборки записаны для MSBuild 3.x. Мы еще не готовы переместить в VS 2010.
Позвольте мне также указать, что мы ищем решение, доступное из командной строки так, чтобы мы могли автоматизировать как будто Опубликовать команду наряду со сделанными на заказ опциями, и возможно автоматизировать развертывание в будущем.
Это просто временное решение.
В сценарии сборки для публикации веб-сайтов после запуска MSBuild в самом веб-проекте для его публикации (Targets = "ResolveReferences; _CopyWebApplication") я добавил операцию копирования:
<Copy SourceFiles="@(ProjectBinFiles)" DestinationFolder="$(StageBin)\%(ProjectBinFiles.RecursiveDir)" />
где ProjectBinFiles - это элемент, представляющий файлы в каталоге bin в исходном каталоге, а StageBin - это свойство, представляющее папку bin в каталоге опубликованного сайта. Пока вроде работает.
У меня тоже была похожая проблема. Думаю, ответ заключается в использовании MSDeploy . Сейчас исследуем его, но может предоставить необходимые функции ...