【问题标题】:Exclude custom MSBuild information from csproj file从 csproj 文件中排除自定义 MSBuild 信息
【发布时间】:2012-01-31 15:33:29
【问题描述】:

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

【问题讨论】:

    标签: visual-studio-2010 msbuild


    【解决方案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>
    

    【讨论】:

    • 应该是 $(Configuration) 而不是 $(CONFIG)
    • @Tomas 你是对的。我相应地更正了示例(我从我的自定义构建脚本之一复制)。
    • @Tomas 你是对的。我相应地更正了示例(我从我的自定义构建脚本之一复制)。
    【解决方案2】:

    有几个选择

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

    2 - 您拥有邮政编码,因此请更改它

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

    如果不查看 MSBuild 项目文件并理解“我已将自定义代码添加到 csproj 文件”的意思,很难说出最适合您的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-05
      • 1970-01-01
      • 2014-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多