从csproj文件中排除自定义MSBuild信息

时间:2012-01-31 15:33:29

标签: visual-studio-2010 msbuild

我已将自定义代码包含到csproj文件中,该文件在构建时压缩整个项目。我想在压缩时从csproj文件中排除我的自定义MSBuild代码。怎么做?

2 个答案:

答案 0 :(得分:1)

您可以在运行csproj时直接调用您的压缩目标

msbuild your.csproj /target:yourZipTarget

如果你需要控制正常构建的压缩/非压缩,你可以在你的压缩目标中添加condition

<Target Name="yourZipTarget" Condition="'$(Configuration)'!='DEBUG'">
    <!-- zipping... -->
</Target>

上面的示例仅在执行RELEASE构建时运行压缩(除非您没有引入其他自定义配置)。

您可以为压缩条件声明自己的项目级属性,并在调用msbuild时指定(并覆盖默认值)

msbuild your.csproj /property:DoZip=true

<PropertyGroup>
    <DoZip Condition=" '$(DoZip)' == '' ">false</DoZip>
</PropertyGroup>

<Target Name="yourZipTarget" Condition="'$(DoZip)'!='false'">
    <!-- zipping... -->
</Target>

答案 1 :(得分:0)

那么有几个选项

1 - 将自定义邮政编码移出项目

2 - 您拥有邮政编码以便更改

3 - 使用msbuild语法从ItemGroup中排除文件

很难说没有看到MSBuild项目文件并理解“我已经将自定义代码添加到csproj文件中”的意思,最适合您的解决方案是什么。