你能从msbuild.exe命令行关闭条件编译符号吗?

时间:2011-07-11 13:20:17

标签: msbuild code-analysis fxcop

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

感谢。

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:1)

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