NDoc是将XML注释生成.chm等帮助文档的工具,对需要生成文档的程序员很有帮助,它不光可以生成.chm还可以支持另外几种文档格式,大家自己试吧。
因为公司文档生成的需要,我下了一个NDoc,原先用VS2003时可以很方便的将XML注释生成HTML文档,不知道为什么M$在VS2005厘米就没提供这个功能。
下来以后发现NDoc只能支持1.0和1.1的.Net运行时,我试着载入一个.NET 2.0下编译的DLL,结果运行失败。
后来在一个外国人的Blog上下到他改造的支持.NET 2.0的NDoc,下完以后一试还真能可以生成文档了,结果打开文档一看,心凉了半截,中文全部变??了。
于是我只能自己修改NDoc的代码了(在那位仁兄的代码基础上),经过一番试验后找到了解决乱码问题的关键
currentFileEncoding = Encoding.GetEncoding(ci.TextInfo.ANSICodePage);
我把这段话该成:
currentFileEncoding = Encoding.UTF8; //.GetEncoding(ci.TextInfo.ANSICodePage);
生成中文文档成功!
但是ci.TextInfo.ANSICodePage哪里来的?我逐一查找代码发现原来NDoc界面上有一个LangID的设置,我真晕,里面还能设置Chinese。
我拿未修改的NDoc选择Chinese生成了一遍文档,发现是可以显示中文了,但是还是有很多??,所以我之前做的修改还不算白费啊。
这里把我修改的代码和可执行文件共享给大家,需要的人就下去用吧,哈哈
可执行文件:ndoc-bin-1.3.1-v16.rar
源代码:ndoc-src-1.3.1-v16.rar