【发布时间】:2012-01-31 15:33:29
【问题描述】:
我已将自定义代码包含在 csproj 文件中,该文件会在构建时压缩整个项目。我想在压缩时从 csproj 文件中排除我的自定义 MSBuild 代码。该怎么做?
【问题讨论】:
标签: visual-studio-2010 msbuild
我已将自定义代码包含在 csproj 文件中,该文件会在构建时压缩整个项目。我想在压缩时从 csproj 文件中排除我的自定义 MSBuild 代码。该怎么做?
【问题讨论】:
标签: visual-studio-2010 msbuild
您可以在运行 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 - 将您的自定义邮政编码移出项目
2 - 您拥有邮政编码,因此请更改它
3 - 使用 msbuild 语法从 ItemGroup 中排除文件
如果不查看 MSBuild 项目文件并理解“我已将自定义代码添加到 csproj 文件”的意思,很难说出最适合您的解决方案。
【讨论】: