现在的位置: 首页 > 综合 > 正文

我并没有定义CODE_ANALYSIS编译符号,为什么基于此符号条件编译的类、特性、语句仍在?

2014年10月21日 ⁄ 综合 ⁄ 共 540字 ⁄ 字号 评论关闭

发现问题

您可以通过Reflactor或在源代码中放置

 

 

来发现此问题。

 

 

并且项目属性->代码分析页没有勾选生成时启用代码分析(定义CODE_ANALYSIS常量)。

 

问题原因

如果你的项目属性里有Code Contracts页,则取消勾选Perform Runtime Contracts Checking,重新生成解决方案,此时

 

应当变为灰色,CODE_ANALYSIS已没有定义。此现象在《Code Contracts User Manual》2010年11月15日版中并没有指出。(没搜索到CODE_ANALYSIS关键字)

 

后记:如果取消勾选Perform Runtime Contracts Checking,则运行时就不检查协定了。如果运行过代码分析,并在源代码中用SuppressMessage特性阻止建议,那么要么运行时就不检查协定,要么发布版仍携带SuppressMessage特性。二者不可得兼,于我,舍检查协定而去SuppressMessage也~

 

抱歉!评论已关闭.