.NET 4.0中的新Web发布管道(WPP)有一个控制输出位置的方法。
首先,在执行CopyWebApplication目标时,您需要选择加入WPP。在命令行或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\