【问题标题】:Can you turn off conditional compilation symbols from msbuild.exe command line?您可以从 msbuild.exe 命令行关闭条件编译符号吗?
【发布时间】:2011-07-11 13:20:17
【问题描述】:

我们在 C# 组件中定义了 CODE_ANALYSIS,以便 FxCop 在我们在开发盒上构建它们时对其进行分析。我想在 FxCop 在我们的构建系统中运行时关闭它。构建系统显然是使用 msbuild.exe 命令行命令。有没有办法从这个可执行文件中修改条件编译符号?如果没有,有没有人知道我的问题的任何其他可能的解决方案(除了手动关闭它)?

谢谢。

【问题讨论】:

    标签: msbuild code-analysis fxcop


    【解决方案1】:

    CODE_ANALYSIS 编译符号控制是否将代码中包含的 SuppressMessageAttribute 实例复制到已编译的程序集中。它不控制 FxCop 是否运行。如果您想覆盖项目级别的 MSBuild 属性,例如 RunCodeAnalysis(它是控制 FxCop 是否在 MSBuild 下运行的野兽),您应该能够使用 MSBuild.exe /property 命令行开关。例如:

    msbuild.exe <...> /property:RunCodeAnalysis=true
    

    【讨论】:

    • 我发现我们实际上是在使用构建后命令来启动 FxCop。不过,您的回答很有帮助。谢谢。
    【解决方案2】:

    为什么需要关闭它们?设置项目的最佳方式是仅为调试配置定义 CODE_ANALYSIS。发布版本不会设置此值。这样,当您构建生产安装时,它们将不会引用 FxCop。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-18
      相关资源
      最近更新 更多