Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 装运程序集fxcop中的.NET[SuppressMessage]属性_C#_.net_Fxcop - Fatal编程技术网

C# 装运程序集fxcop中的.NET[SuppressMessage]属性

C# 装运程序集fxcop中的.NET[SuppressMessage]属性,c#,.net,fxcop,C#,.net,Fxcop,我想知道人们(指公司/开发人员)是否真的关心装运程序集中是否有[SuppressMessage]属性 在项目文件中创建单独的配置,包括发布模式下的代码分析,然后在最终构建中将其删除,这对我来说似乎是一种可以避免的开销 如果一个人不希望这些代码保留在最终的汇编中,但仍然希望在代码中使用它们,那么最好的策略是什么? 将它们存储在FxCop项目文件中有什么优点/缺点吗 [我来自VS2008 Pro+FxCop 1.36,而不是VS2008团队系统]我们有大量分散在生产代码中的代码,我们并不特别在意。它

我想知道人们(指公司/开发人员)是否真的关心装运程序集中是否有[SuppressMessage]属性

在项目文件中创建单独的配置,包括发布模式下的代码分析,然后在最终构建中将其删除,这对我来说似乎是一种可以避免的开销

如果一个人不希望这些代码保留在最终的汇编中,但仍然希望在代码中使用它们,那么最好的策略是什么? 将它们存储在FxCop项目文件中有什么优点/缺点吗


[我来自VS2008 Pro+FxCop 1.36,而不是VS2008团队系统]

我们有大量分散在生产代码中的代码,我们并不特别在意。它不会影响性能,在类中具有一些外观粗糙的属性通常会在可能的情况下促使删除它。

只有在编译过程中存在代码分析预处理器定义时,SuppressMessage属性才会添加到代码中。您可以通过查看Reflector.exe中属性的定义来验证这一点。默认情况下,这不会在发行版中定义,因此不会影响生产代码


通常,我只在定义了代码分析的程序集调试版本上运行FxCop

从全局来看,我认为这并不重要。因为这是一个属性(实际上是元数据),所以它不会影响代码性能。也就是说,请记住,属性中的信息对于任何使用类似于disassember的反射器的人都是可用的

将它们存储在FxCop项目文件中的问题是,您必须确保每个人都使用相同的项目文件,并且项目文件始终随项目一起移动(它已签入到源代码管理,这意味着您必须在每次运行FxCop时签出它)

如果不希望生产代码中包含SuppressMessage属性,则只需在运行FxCop的生成中定义代码分析符号。这意味着在调试配置上定义它,或者添加其他配置。只有在定义符号时,属性才会编译到代码中

从自动/夜间构建的角度来看,您可以使用定义了符号的配置进行构建,然后构建没有符号的生产版本,或者进行两次构建—一次定义了符号,运行FxCop以获取冲突,然后进行另一次没有定义符号的构建