达达's 胡搞瞎搞工作室

此Blog搬到www.unbe.cn/blog 去了,要找我讨论问题请到我的新Blog

支持.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
  

posted on 2006-08-18 19:30 达达 阅读(4325) 评论(16)  编辑 收藏 网摘

Feedback

#1楼 [楼主] 2006-08-18 19:32 达达      

这个版本还是不能从VS2005的解决方案载入,只能Add程序集,Add的程序集要先生成好注释用的的XML文件   回复  引用  查看    

#2楼  2006-08-18 19:39 Nihgwu      

我用SharpDevelop提供的NDoc支持.Net 2.0啊
还有,NDoc不是停止开发了么,现在MS已经推出了官方的NDoc: SandCastle了   回复  引用  查看    

#3楼 [楼主] 2006-08-18 19:40 达达      

@Nihgwu
这样啊。。。我真是孤弱寡闻。。。我也去找个试试看
NDoc我是知道已经停止开发了,SandCastle没听过   回复  引用  查看    

#4楼  2006-08-18 19:53 jillzhang      

其实就是将原程序用2005打开之后重修编译一下,就可以支持没有泛类型的文档生成了   回复  引用  查看    

#5楼  2006-08-18 19:55 jillzhang      

不错,交换个连接吧   回复  引用  查看    

#6楼 [楼主] 2006-08-18 20:00 达达      

@jillzhang
好   回复  引用  查看    

#7楼  2006-08-18 20:23 Nihgwu      

我原本写一篇Blog介绍SandCastle的使用的,结果老是出错,借贵地问一下:
怎么我每次执行XslTransform 转换时就会出现下面这个错误啊
<?xml version="1.0" encoding="gb2312">Error:The input was not well-formed.The error message is :根级别的数据无效

我还查看了一下xml文件和 xsl文件,encoding都是utf-8呀   回复  引用  查看    

#8楼  2006-08-18 21:42 bytesX [未注册用户]

@Nihgwu
少个问号,应该是
<?xml version="1.0" encoding="gb2312" ?>   回复  引用    

#9楼  2006-08-18 21:58 计算银行ComputeBank [未注册用户]

这个东西貌似已经停止开发了~
个人认为在实际项目中不推荐使用
免得以后出现麻烦

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
我的Blog,创业、思考与探讨下一代计算技术:
http://computebank.spaces.live.com/
http://www.zhangcheng.name   回复  引用    

#10楼 [楼主] 2006-08-18 22:23 达达      

@计算银行ComputeBank
噢,我觉得这个反正不是系统依赖的东西,停止开发了也没什么的,顶多换个别的软件生成就是   回复  引用  查看    

#11楼  2006-08-18 22:33 Nihgwu      

@bytesX
看得还真仔细,我只是想知道有没有人碰到和我一样的问题   回复  引用  查看    

#12楼  2006-08-18 22:42 计算银行ComputeBank [未注册用户]

@达达
原来代码里面的那些内容怎么办?
修改?工作量不小哦~~~
如果后来换的软件不兼容于NDOC的话,原来的代码里面的内容就是去了一部分意义~

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
我的Blog,创业、思考与探讨下一代计算技术:
http://computebank.spaces.live.com/
http://www.zhangcheng.name   回复  引用    

#13楼 [楼主] 2006-08-19 21:25 达达      

@计算银行ComputeBank
你是不是误解这个软件的用途了?
这个软件是从现有的XML注释生成HTML文档,XML注释是和具体用哪个软件无关的,是语言自己的特性。就算换别的软件生成也可以。   回复  引用  查看    

#14楼  2006-08-19 22:00 main      

http://www.cnblogs.com/yuandong/archive/2006/08/19/481371.html同在首页的文章
  回复  引用  查看    

#15楼 [楼主] 2006-08-19 23:49 达达      

@main
谢谢,我晚上刚看,呵呵
  回复  引用  查看    

#16楼  2008-10-23 16:55 HAL9000      

这个异常是什么原因啊?

Exception: System.Exception
在 NDoc.Documenter.Msdn.StyleSheetCollection.MakeTransform(String name, XsltResourceResolver resolver) 位置 C:\Documents and Settings\Administrator\桌面\ndoc-src-1.3.1-v15\src\Documenter\Msdn\StyleSheetCollection.cs:行号 115
在 NDoc.Documenter.Msdn.StyleSheetCollection.AddFrom(String name, XsltResourceResolver resolver) 位置 C:\Documents and Settings\Administrator\桌面\ndoc-src-1.3.1-v15\src\Documenter\Msdn\StyleSheetCollection.cs:行号 96
在 NDoc.Documenter.Msdn.StyleSheetCollection.LoadStyleSheets(String extensibilityStylesheet) 位置 C:\Documents and Settings\Administrator\桌面\ndoc-src-1.3.1-v15\src\Documenter\Msdn\StyleSheetCollection.cs:行号 58
在 NDoc.Documenter.Msdn.MsdnDocumenter.Build(Project _project) 位置 C:\Documents and Settings\Administrator\桌面\ndoc-src-1.3.1-v15\src\Documenter\Msdn\MsdnDocumenter.cs:行号 400

Exception: System.IO.DirectoryNotFoundException
在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
在 System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
在 System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
在 System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials)
在 System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn)
在 NDoc.Core.XsltResourceResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn) 位置 C:\Documents and Settings\Administrator\桌面\ndoc-src-1.3.1-v15\src\Core\XsltResourceResolver.cs:行号 138
在 NDoc.Documenter.Msdn.StyleSheetCollection.MakeTransform(String name, XsltResourceResolver resolver) 位置 C:\Documents and Settings\Administrator\桌面\ndoc-src-1.3.1-v15\src\Documenter\Msdn\StyleSheetCollection.cs:行号 105


  回复  引用  查看    





标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-08-18 19:39 编辑过
Google站内搜索


China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!

相关文章:

相关链接: