You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET编译文件注释获取方法及存储位置查询

关于.NET编译文件中注释的存储位置说明

嘿,我来帮你理清这个问题——首先得明确你说的注释类型,因为不同的注释在编译后的处理方式完全不一样:

  • 普通代码注释(VB的'、C#的////* */):这类注释是给开发者看的“临时笔记”,编译器在编译过程中会直接丢弃它们,不会把它们包含在最终的.exe或.dll程序集里,也不会存到资源文件或其他任何编译输出文件中。所以你用ILSpy/Reflector反编译时,是看不到这类普通注释的——如果你的代码里只是写了'get current os info这种普通注释,那它们根本没被编译进去,自然找不到。

  • XML文档注释(VB的'''、C#的///):这类注释是专门用来生成文档的结构化注释,如果你在项目设置里启用了“生成XML文档文件”的选项,编译器会把这些注释提取出来,生成一个和程序集同名的.xml文件(比如你的程序集是MyApp.dll,就会生成MyApp.xml),放在程序集的同一目录下。

    举个VB的实际例子:

    ''' <summary>
    ''' get current os info
    ''' checking operating system
    ''' </summary>
    Public Property CheckOs As String
    

    编译后生成的XML文件里会完整包含这些注释内容,ILSpy、Reflector这类反编译工具会自动检测同目录下的XML文件,把注释关联显示到对应的属性/方法上面——这就是你能在反编译工具里看到注释的核心原因。

额外补充

如果你确定自己写的是普通的'注释,但反编译时却看到了类似的内容,那大概率是反编译工具根据代码逻辑做的推测性注释,不是你原代码里的真实注释;或者可能你误把XML文档注释当成了普通注释。

总结一下:

  • 普通代码注释:完全不会出现在编译输出中
  • XML文档注释:存储在独立的XML文件中,和程序集配套

内容的提问来源于stack exchange,提问作者DVELPR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:02:44