支持.NET 2.0又支持中文的NDoc
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
因为公司文档生成的需要,我下了一个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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix