Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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
.net 为什么即使设置了代码分析编译符号,某些SuppressMessage属性仍然保留?_.net_Visual Studio_Attributes_Suppressmessage - Fatal编程技术网

.net 为什么即使设置了代码分析编译符号,某些SuppressMessage属性仍然保留?

.net 为什么即使设置了代码分析编译符号,某些SuppressMessage属性仍然保留?,.net,visual-studio,attributes,suppressmessage,.net,Visual Studio,Attributes,Suppressmessage,我正在浏览实体框架的代码 我注意到EntityFramework5的生产dll中仍然有一些SuppressMessage属性 尽管该项目显然是使用CODE_ANALYSIS编译符号(如果您查看开源项目)构建的,以删除SuppressMessage属性,但在某些情况下它仍然存在 这不只是增加了dll的大小(我知道这不会影响运行时性能,因为它只是元数据),但为什么只解析出一些?有数千个未在生产DLL中结束 此外,我还反编译了从NuGet获得的版本,以确保我没有使用错误的设置构建项目 我以EF代码库

我正在浏览实体框架的代码

我注意到EntityFramework5的生产dll中仍然有一些SuppressMessage属性

尽管该项目显然是使用CODE_ANALYSIS编译符号(如果您查看开源项目)构建的,以删除SuppressMessage属性,但在某些情况下它仍然存在

这不只是增加了dll的大小(我知道这不会影响运行时性能,因为它只是元数据),但为什么只解析出一些?有数千个未在生产DLL中结束

此外,我还反编译了从NuGet获得的版本,以确保我没有使用错误的设置构建项目


我以EF代码库为例,因为我甚至不能让代码分析编译符号删除我自己的suppressmessages,即使在我的系统上编译发布时

测试,SuppressMessage属性被发送到il中,如果您使用代码分析编译符号集进行编译。如果代码中有属性,但没有编译符号,则不会发出该属性。这很有趣。我认为情况正好相反;我的错误。仍然不能解释EF项目中的巨大差异。如果您快速查看一下,它在DLL中有2000多个抑制项,而在实际生产程序集中只有零星的几个。我只是想知道这是怎么发生的。