很久以前就使用ADB这个工具来生成项目的帮助文档。功能强大,在学习一些开源项目的过程中,官方没有提供CHM帮助文档,所以为了快速的了解项目结构和注释。就生成文档来自己看,非常好用。这也是一个学习方法吧。例如本文在:

.NET平台开源项目速览(2)Compare .NET Objects对象比较组件

.NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB

  上述2篇文章中最后的资源中就手动制作了CHM帮助文档。有时候我们还可以对源码进行翻译,再制作,效果还不错。今天介绍的ADB工具,我使用的是基于X组件的一个改进版。改进的细节我也不太清楚,反正非常好用。下面来看看介绍和使用方法。

.NET开源目录:【目录】本博客其他.NET开源项目文章目录

本文原文地址:.NET平台开源项目速览(4).NET文档生成工具ADB及使用

1.ADB介绍

程序的注释在程序的编写和维护中扮演着相当重要的角色,在Visual C#中,可以为代码创建文档,方法是在XML标记所指的代码块前面,直接在源代码的特殊注释字段中包括XML 标记。编译器编译时将在源代码中搜索所有的 XML 标记,并创建一个XML文档文件。.NET文档生成工具(下文简称为ADB)通过反射程序集及其代码中的XML注释来创建MSDN形式的API文档。

ADB文档生成工具是博客园 卢春城 开发的一个开源工具,项目的介绍网址为:

http://www.cnblogs.com/lucc/archive/2008/09/01/1281085.html

注意:使用该软件需先安装Microsoft HTML Help Workshop,主要作用有:

(1)根据程序集及其对应的XML文档文件生成风格类似MSDN的文档,并打包为CHM文件;

(2)将多个程序集对应的文档合并到一个文档中;

(3)自动搜索程序集及其引用的程序集对应的XML文档(包括.Net自带的程序集,如:System.xml);

(4)灵活控制在文档中显示哪些成员(如:只生成公共方法);

(5)界面友好,操作简便。

(6)用户可以根据自己的需要扩展XML标志;

(7)用户可以根据自己的需要编写自定义的文档生成器。

ADB官方提供的最新版是2.3,可以去上面的链接下载最新版,我这里分享的是@大石头使用X组件重新编译后的版本。

2.ADB生成.NET文档过程

使用过程分为3个步骤:

2.1 .NET项目代码注释

ADB代码生成主要是根据项目的注释来进行生成的。例如C#中注释的标记:

/// <summary>获取指定数组中,满足范围的比例</summary>
/// <param name="data">目标数据</param>
/// <param name="L">下限</param>
/// <param name="H">上限</param>
public static double FindPrecent(this IEnumerable<Int32> data, Int32 L, Int32 H)
{
var t = (double)data.Where(n => n >= L && n <= H).Count();
return t / (double)data.Count();
}

当然还有更多的标记符号,例如example,code,see等等。如果想做很完善的帮助文档,那这些细节处理得越好,那文档的作用就越强大。

2.2 项目设置与生成

项目编译之前,要确认是否生成xml文件,打开 项目属性->生成->输出 节点,如下图:

确认勾选xml文档文件选项。生成的时候就是根据这个xml的注释来进行的。

2.3 ADB使用生成CHM文档

打开ADB软件,我在第3节提供2个版本的下载,如果需要自己编译其他版本,打开ADB软件,如下图:

输入标题后,添加你要生成的文档的dll文件,可以添加多个,然后如果你生成了对应的xml文件,会自动加载进来。否则会报错。如下图:

还可以只添加你想要的类型以及方法。一般非公共类型可以不加进去。最后点”创建文档”就OK了,它会生成到你xml文件的目录。

注意2个小问题:你的CHM的文件标题要规范一点,什么#号,:号等都不要加上去,否则会报错,有时候很头疼。。。经常会忘记这一个,有时候还不止咋搞,就错误。如下图所示,标题就有问题:

好了,不说了,说多了都是泪。下面看看我生成的一些文档:

效果不错哦。。。赶紧试试。

3.资源与代码

我这里发的是X组件修改版本的源代码,感谢@卢春城 ,@大石头,我只是打酱油的,把它分享出来而已。

 下载地址更新为博客园的地址 :   Microsoft HTML Help Workshop下载

ADB X组件版本源码:ADB_Src.rar

ADB  .NET 4.0版本:ADB_4.0.rar

ADB  .NET 4.5版本:ADB_4.5.rar

大家主要,如果dll不是上面2个版本,可能要自己编译一下。如果有问题,及时留言,我会给大家解决,可能有一些小问题。因为我安装好后,基本生成都是好的。没碰到过啥问题,不保证大家也么有问题啊。非常感谢TakeTry 发现一个问题:


大多数人安装HTML Help Workshop 会默认安在C盘,
我将 HTML Help Workshop 安装到D盘时,生成时会报"系统找不到指定的文件"。

在源码里,将CreateCHM()方法中的
“_hhcProcess.StartInfo.FileName = _defaultHHCPath; ” ,_defaultHHCPath 改成 HHCPath 就可以正常生成了。

.NET平台开源项目速览(4).NET文档生成工具ADB及使用的更多相关文章

  1. .NET平台开源项目速览(5)深入使用与扩展SharpConfig组件

    上个月在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧  和 .NET平台开源项目速览(1)SharpConfig配置文件读写组件 中都提到了SharpConfig组件,简单轻量级 ...

  2. .NET平台开源项目速览(9)软件序列号生成组件SoftwareProtector介绍与使用

    在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,给大家初步介绍了一下Software Protector序列号生成组件.今天就通过一篇简单的文章来预览一下其强大的功 ...

  3. .NET平台开源项目速览(17)FluentConsole让你的控制台酷起来

    从该系列的第一篇文章 .NET平台开源项目速览(1)SharpConfig配置文件读写组件 开始,不知不觉已经到第17篇了.每一次我们都是介绍一个小巧甚至微不足道的.NET平台的开源软件,或者学习,或 ...

  4. .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验

    不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...

  5. .NET平台开源项目速览(13)机器学习组件Accord.NET框架功能介绍

    Accord.NET Framework是在AForge.NET项目的基础上封装和进一步开发而来.因为AForge.NET更注重与一些底层和广度,而Accord.NET Framework更注重与机器 ...

  6. .NET平台开源项目速览(1)SharpConfig配置文件读写组件

    在.NET平台日常开发中,读取配置文件是一个很常见的需求.以前都是使用System.Configuration.ConfigurationSettings来操作,这个说实话,搞起来比较费劲.不知道大家 ...

  7. .NET平台开源项目速览(12)哈希算法集合类库HashLib

    .NET的System.Security.Cryptography命名空间本身是提供加密服务,散列函数,对称与非对称加密算法等功能.实际上,大部分情况下已经满足了需求,而且.NET实现的都是目前国际上 ...

  8. .NET平台开源项目速览(11)KwCombinatorics排列组合使用案例(1)

    今年上半年,我在KwCombinatorics系列文章中,重点介绍了KwCombinatorics组件的使用情况,其实这个组件我5年前就开始用了,非常方便,麻雀虽小五脏俱全.所以一直非常喜欢,才写了几 ...

  9. .NET平台开源项目速览(10)FluentValidation验证组件深入使用(二)

    在上一篇文章:.NET平台开源项目速览(6)FluentValidation验证组件介绍与入门(一) 中,给大家初步介绍了一下FluentValidation验证组件的使用情况.文章从构建间的验证器开 ...

随机推荐

  1. AngularJS中的route可以控制页面元素的改变,使多页面变成一个单页面。。。

    SPA(Single Page Application)指的是通单一页面展示所有功能,通过Ajax动态获取数据然后进行实时渲染,结合CSS3动画模仿原生App交互,然后再进行打包(使用工具把Web应用 ...

  2. python setup.py 管理

    发布项目遇到了坑……特此记录. How to write setup.py: https://docs.python.org/2/distutils/setupscript.html Setup.py ...

  3. 【Beta】Daily Scrum Meeting总结

    团队博客目录:FTD团队博客目录 一.项目预期计划和现实进展 更换网络请求框架为okHttp 完成 补充和完善服务器的API 完成(可与web端互连) 补充和完善app与服务器交互的类和方法 完成 完 ...

  4. Grunt 使用记录

    想了解Grunt,可以先去官网 看看. 第一次接触Grunt是通过Coding的移动端项目, 刚开始因为环境的问题折腾了一两天,然后就顿悟了. Grunt构建工具对于前端开发而言,简直是神器(ps.虽 ...

  5. XNA游戏编程等

    XNA游戏编程:http://shiba.hpe.sh.cn/jiaoyanzu/WULI/soft/xna.aspx?classId=4 表示没学过XNA,但感觉还是很不错的,给学XNA的童鞋们参考 ...

  6. 工作中那些提高你效率的神器(第二篇)_Listary

    引言 无论是工作还是科研,我们都希望工作既快又好,然而大多数时候却迷失在繁杂的重复劳动中,久久无法摆脱繁杂的事情. 你是不是曾有这样一种想法:如果我有哆啦A梦的口袋,只要拿出神奇道具就可解当下棘手的问 ...

  7. fasicon.js (无二维码版,如需要js创建二维码版本可联系我:770959294@qq.com)

    /*** Created by 张云山 on 2016/12/9.*/(function(wins,doct){wins.fasicon = function(){this.name = " ...

  8. Xcode 升级后,常常遇到的遇到的警告、错误,解决方法(转)

    从sdk3.2.5升级到sdk 7.1中间废弃了很多的方法,还有一些逻辑关系更加严谨了.1,警告:“xoxoxoxo”  is deprecated解决办法:查看xoxoxoxo的这个方法的文档,替换 ...

  9. (转载)H.264码流的RTP封包说明

    H.264的NALU,RTP封包说明(转自牛人) 2010-06-30 16:28 H.264 RTP payload 格式 H.264 视频 RTP 负载格式 1. 网络抽象层单元类型 (NALU) ...

  10. Git生成ssh ksy后进行项目管理

    1.首先你要有一个git账号,然后在网站上Create a New Repository,填好名称后就建立了一个仓库,之后即会出现一些仓库的配置信息... 2.然后你要下载一个git客户端,也可以是m ...