Публикация веб-приложения из MSBuild Script с использованием VS2010 целей сбрасывает рабочий каталог - PullRequest
2 голосов
/ 01 сентября 2010

Я пытаюсь автоматически публиковать и развертывать мое веб-приложение .Net 4 автоматически из сценария сборки, который будет запускаться нашим сервером непрерывной интеграции. Я использую новую цель _WPPCopyWebApplication из VS2010 для выполнения публикации, однако, похоже, для сброса текущего рабочего каталога проекта msbuild на c: \ это вызывает сбой моих шагов предварительной сборки, поскольку они имеют относительные пути к некоторым внешним инструментам. Задача, которую я запускаю из нашего файла master.build, выглядит следующим образом:

<Target Name="PublishWeb">
    <MSBuild 
        Projects="$(ProjectPath)"
        Targets="ResolveReferences;_WPPCopyWebApplication"
        Properties="WebProjectOutputDir=$(DeployPath);OutDir=$(TempOutputFolder)$(WebOutputFolder)\;OutputPath=$(ProjectPath)\bin\Debug;" />
</Target>    

Этого не происходит при использовании устаревшего _CopyWebApplication. У кого-нибудь есть идеи, как решить эту проблему?

1 Ответ

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

На ум приходят две возможности:

  1. Используйте задачу Exec для вызова msbuild.exe и укажите конкретный рабочий каталог.
  2. Ваши шаги перед сборкой оцениваются MSBuildи может ссылаться на любое свойство MSBuild, поэтому указывайте пути относительно чего-то определенного, например, $(MSBuildProjectDirectory) или $(MSBuildThisFileDirectory), а не просто относительно текущего каталога.
...