Новый конвейер веб-публикаций (WPP) в .NET 4.0 имеет метод для управления расположением вывода.
Сначала необходимо подключиться к WPP во время выполнения цели CopyWebApplication.Установите следующие свойства MSBuild либо в командной строке, либо в файле проекта MSBuild:
<PropertyGroup>
<UseWPP_CopyWebApplication>True</UseWPP_CopyWebApplication>
<PipelineDependsOnBuild>False</PipelineDependsOnBuild>
</PropertyGroup>
Вариант командной строки:
/p:UseWPP_CopyWebApplication=True /p:PipelineDependsOnBuild=False
Далее создайте новый файл целей MSBuildв том же каталоге, что и ваш проект, и назовите его «ProjectName.wpp.targets», где «ProjectName» - это имя файла вашего проекта, за вычетом расширения.Другими словами, если у вас есть «MyWebsite.csproj», вам нужно создать «MyWebsite.wpp.targets».Я считаю, что это помогает добавить файл целей в проект.Это не обязательно, но это облегчает редактирование.
В новом файле целей вам нужно переопределить свойство WebProjectOutputDir.Делайте это только тогда, когда будет вызвано CopyWebApplication - другими словами, когда «OutDir» перенаправлен в сторону от «OutputPath»:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebProjectOutputDir Condition="'$(OutDir)' != '$(OutputPath)'">$(OutDir)Websites\MyCustomFolderName</WebProjectOutputDir>
</PropertyGroup>
</Project>
Вот и все - вам нужно идти дальше.Вы можете проверить это локально, установив свойство OutDir.Не забудьте про обратную косую черту:
msbuild MyWebsite.csproj /p:OutDir=C:\Development\WebOutputTest\