积极答复者
源码编译后包含注释内容?

问题
答案
-
C#项目里面的代码包含注释内容,但是编译后发现里面还包含注释内容,导致 dll 文件体积巨大.
注释照例而言不会被编译进入dll或者exe里边的……,像你用Reflector反射去看微软源码,根本没有任何注释存在……
另外,如果你要单独做类似微软MSDN一样的帮助文档,必须使用xml格式化的注释(C#///,VB.NET中三个连续英文逗号)。然后使用此工具即可:
1、下载Sandcastle Help File Builder:
2、下载sandcastle:
1、先安装sandcastle,然后安装sandcastle Help File Builder。接着在使用sandcastle Help File Builder时配置好sandcastle安装路径(选项卡中的Path里的sandcastle Path)。
2、在VS2005/2008环境中选择项目,右击鼠标选属性,切换到Build选项卡,然后把XML File Documentation打钩即可,生成项目。
3、最后在sandcastle Help File Builder菜单:Project-->New Project from Visual Studio..即可导入工程。
- 已标记为答案 钱仔 2012年6月16日 21:53
全部回复
-
貌似VS现在还没有这样的功能,在编译的时候自动删除注释代码。
可以采用如下措施
1.在发布前,借助第三方工具,清楚代码中的注释。CSDN上有这样的工具可以下载使用
2.你可以自己写一个工具代码,删除文件里面的注释,仅供参考
static string RemoveComment(string s) { return Regex.Replace ( s, @"(?ms)""[^""]*""|//.*?$|/\*.*?\*/", delegate(Match m) { switch (m.Value.Substring(0, 2)) { case "//": return ""; case "/*": return " "; default : return m.Value; } } ); }
http://blog.csdn.net/zx13525079024
-
C#项目里面的代码包含注释内容,但是编译后发现里面还包含注释内容,导致 dll 文件体积巨大.
注释照例而言不会被编译进入dll或者exe里边的……,像你用Reflector反射去看微软源码,根本没有任何注释存在……
另外,如果你要单独做类似微软MSDN一样的帮助文档,必须使用xml格式化的注释(C#///,VB.NET中三个连续英文逗号)。然后使用此工具即可:
1、下载Sandcastle Help File Builder:
2、下载sandcastle:
1、先安装sandcastle,然后安装sandcastle Help File Builder。接着在使用sandcastle Help File Builder时配置好sandcastle安装路径(选项卡中的Path里的sandcastle Path)。
2、在VS2005/2008环境中选择项目,右击鼠标选属性,切换到Build选项卡,然后把XML File Documentation打钩即可,生成项目。
3、最后在sandcastle Help File Builder菜单:Project-->New Project from Visual Studio..即可导入工程。
- 已标记为答案 钱仔 2012年6月16日 21:53
-
可能有的人没有遇到这问题.
Vs2010 C#项目如果你的源码包含注释内容,在你选择输出Xml文档("项目(属性)" -> 输出),生成的Dll文件会包含注释.如果不选择输出XMl文档.则生成的Dll文件不会包含Xml注释.
我在对比两者生成后的Dll大小是一样的.看来导致Dll文件大小并不是这个原因.
但是我还是很想去掉Dll文件中的注释内容.可否有人提供在生成事件("项目(属性)" -> 生成事件)中后期生成事件的实现吗?或者帮我实现下:
生成事件 -> 预先生成事件命令行设置
- 设置项目属性 : 生成 -> 输出XMl文档.
生成事件 -> 后期生成事件命令行设置
- 设置项目属性 : 生成 -> 取消输出XMl文档.
- 重新生成.
我想这应该会是一个很好的方法.但是我不会写Bat文件........
lol......
- 已编辑 钱仔 2012年6月14日 16:51
-
楼主:)
注释是提供读者看的,解释代码用的。因此不会编译进入代码。
所以建议您可以参照我的方法,输出xml文档专门用于制作类似MSDN的帮助文档之用,和代码分离。谢谢!
>>生成 -> 输出XMl文档
这不是混合进入exe或者dll,而是自动在exe文件夹下生成同名的xml解释性文档,用于制作MSDN帮助文档之用。http://www.cnblogs.com/netatomy/archive/2008/01/23/1050678.html
-
dear
补充可以看MSIL的软件,若没有预算买Reflector,可以参考以下
ildasm .net自带的
http://www.myfirm.cn/20096/20090616081811641.html
免费的反编译
http://www.jetbrains.com/decompiler/?utm_source=dotpeek10-release&utm_medium=newsletter&utm_campaign=dotpeek
另外,我使用ILSpy也没见到我自己定义的注释,我想你见到的注释应该是ISpy所建立的说明,或是它自动载入GAC 的XML说明挡,IL挡基本上不包含mark。
根据网页上写,他的确会载入Xml说明,我个人认为ILSpy比Reflector好用
http://wiki.sharpdevelop.net/ILSpy.ashx
ILSpy Features¶
- Assembly browsing
- IL Disassembly
- Support C# 5.0 "async"
- Decompilation to C#
- Supports lambdas and 'yield return'
- Shows XML documentation
秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
- 已编辑 余小章MVP 2012年6月15日 4:16