我想知道人们(意味着公司/开发人员)是否真的关心装运组件中存在[SuppressMessage]属性.
在Project文件中创建单独的配置,在Release模式下包含CODE_ANALYSIS,然后在最终版本中将其删除,这对我来说似乎是一种可以避免的开销.
什么是最好的策略,如果一个人不希望这些保留在最终组装但仍想在代码中使用它们?将它们存储在FxCop项目文件中是否有任何优点/缺点?
[我来自VS2008 Pro + FxCop 1.36,而非VS2008 Team System]
如果在编译期间存在CODE_ANALYSIS预处理器定义,则SuppressMessage属性将仅添加到您的代码中.您可以通过查看Reflector.exe中属性的定义来验证这一点.默认情况下,未在Release中定义,因此不会影响生产代码.
通常,我只在我的程序集的DEBUG构建中运行FxCop,其中定义了CODE_ANALYSIS.
从长远来看,我认为这并不重要。由于这是一个属性(实际上是元数据),因此它不会影响代码性能。话虽如此,请记住,任何使用 Reflector 等反汇编器的人都可以使用该属性中的信息。
将它们存储在 FxCop 项目文件中的问题是,您必须确保每个人都使用相同的项目文件,并且项目文件始终与项目一起移动(它已签入源代码管理,这意味着您每次都必须将其签出)你想运行 FxCop)。
如果您不想在生产代码中使用 SuppressMessage 属性,则只需在运行 FxCop 的构建中定义 CODE_ANALYSIS 符号。这确实意味着在调试配置上定义它或添加其他配置。仅当定义符号时,属性才会被编译到代码中。
从自动化/夜间构建的角度来看,您可以使用定义了符号的配置进行构建,然后构建不带符号的生产版本,或者进行两次构建 - 一个定义了符号,运行 FxCop 来获取违规情况,然后进行另一个构建没有定义的符号。
| 归档时间: |
|
| 查看次数: |
2282 次 |
| 最近记录: |