.NET平台开源项目速览(4).NET文档生成工具ADB及使用
很久以前就使用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 就可以正常生成了。
转载于:https://www.cnblogs.com/lonelyxmas/p/4606720.html
.NET平台开源项目速览(4).NET文档生成工具ADB及使用相关推荐
- .NET平台开源项目速览(9)软件序列号生成组件SoftwareProtector介绍与使用
原文:.NET平台开源项目速览(9)软件序列号生成组件SoftwareProtector介绍与使用 在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,给大家初步介绍了 ...
- .NET平台开源项目速览(2)Compare .NET Objects对象比较组件
原文:.NET平台开源项目速览(2)Compare .NET Objects对象比较组件 .NET平台开源项目速览今天介绍一款小巧强大的对象比较组件.可以更详细的获取2个对象的差别,并记录具体差别,比 ...
- .NET平台开源项目速览(1)SharpConfig配置文件读写组件
原文:.NET平台开源项目速览(1)SharpConfig配置文件读写组件 在.NET平台日常开发中,读取配置文件是一个很常见的需求.以前都是使用System.Configuration.Config ...
- .NET平台开源项目速览(17)FluentConsole让你的控制台酷起来
从该系列的第一篇文章 .NET平台开源项目速览(1)SharpConfig配置文件读写组件 开始,不知不觉已经到第17篇了.每一次我们都是介绍一个小巧甚至微不足道的.NET平台的开源软件,或者学习,或 ...
- .NET平台开源项目速览(11)KwCombinatorics排列组合使用案例(1)
阅读目录 1.KwCombinatorics基本介绍 2.足球彩票排列组合应用 3.排列组合生成代码与测试 今年上半年,我在KwCombinatorics系列文章中,重点介绍了KwCombinator ...
- .NET平台开源项目速览(8)Expression Evaluator表达式计算组件使用
在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,给大家初步介绍了一下Expression Evaluator验证组件.那里只是概述了一下,并没有对其使用和强大功能做 ...
- .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB
今天给大家介绍一个不错的小巧轻量级的NoSQL文件数据库LiteDB.本博客在2013年也介绍过2款.NET平台的开源数据库: 1.[原创]开源.NET下的XML数据库介绍及入门 2.[原创]C#开源 ...
- .NET平台开源项目速览(12)哈希算法集合类库HashLib
阅读目录 1.哈希算法介绍 2.HashLib功能介绍 .NET的System.Security.Cryptography命名空间本身是提供加密服务,散列函数,对称与非对称加密算法等功能.实际上,大部 ...
- .NET平台开源项目速览-最快的对象映射组件Tiny Mapper之项目实践
晚上浏览博客园 看到一篇非常实用的博客:.NET平台开源项目速览(14)最快的对象映射组件Tiny Mapper,花了10分钟简单了解了一下. 看评论也是挺有价值,同时也看到许多新手同学问道在实际项目 ...
最新文章
- leetcode--无重复字符的最长子串--python
- 数组-丢失的数字(哈希表法)
- LeetCode: Max Points on a Line
- 剑指offer 翻转链表
- create a new JSON model with url will trigger SAP UI5 AJAX
- codeforces 932D Tree 倍增法+二分搜索
- turtle fillcolor_使Python中的turtle模块画图两只小羊
- 苹果x计算机按键有声音吗,iPhoneX拍照总有声音怎么办?拨动静音键即可关闭拍照声!...
- Python机器学习:决策树003使用信息熵寻找最优划分
- c语言网络定向拉取数据,用C模拟了一个http请求,但是recv函数接收的数据不完整且欠安顺序获取信息...
- python 矩阵元素如何表示_python 怎么给矩阵里的每一个元素赋值
- 7.PHP核心技术与最佳实践 --- PHP 扩展开发
- 高中计算机会考excel试题及答案,高中计算机会考EXCEL会考练习试题
- NOIP2016普及组初赛难点整理
- Toast调整显示位置
- python moving average_Python实现滑动平均(Moving Average)的例子
- java神雕侠侣1古墓情缘游戏攻略_《神雕侠侣》古墓派加点详解攻略
- matlab引用csv文件,如何用MATLAB读取csv文件
- 如何利用小程序布局社交电商?
- LeetCode #121 买卖股票的最佳时机 贪心 单调栈 动态规划