Sandcastle帮助文档生成器使用介绍
转自:http://www.cnblogs.com/net515/p/3311584.html
一、软件介绍
Sandcastle是一个管理类库的文档编译器,是用于编译发布组件(Assembly)信息的一个工具,这个工具通过反射和Xslt技术,可以从dll文件及其xml注释(命令行编译时加/doc参数或vs2005设置项目属性得到)得到一个完整的帮助文档,格式可以是Html或CHM甚至是任何自定义的格式。
Sandcastle与.NET Framework 2.0和.NET Compact Framework组合使用。Sandcastle支持本地化,并提供一个基本的命令行编译器界面和一个Visual Studio插件。
Sandcastle中共有三个组件:MrefBuilder、Build Assembler和XslTransform。这些工具使用编译汇编代码时生成的输出结果,包括DLL文件以及XML注释文件。
MrefBuilder反射一个项目的汇编代码并生成一个输出文件。MrefBuilder是一个随Sandcastle安装的命令行工具。它生成的输出文件通过XslTransform命令行工具转换成一个叫做reflection.xml的文件。reflection.xml文件包含所有文档数据,但不提供显示细节。
MrefBuilder完成工作后,立即由Build Assembler接手处理。Build Assembler可由命令行工具BuildAssembler启动。它利用由MrefBuilder生成的数据(reflection.xml)和任何代码注释(保存在独立的XML文件中),生成按逻辑分组的HTML文件。HTML Help Compiler再利用这些HTML文件生成最终结果。
该工具并未限制你一次处理一个汇编。如果你需要处理几个汇编代码,你必须深入了解Sandcastle配置文件。它是一个包含建立帮助文件主题所需步骤的XML文件。
Sandcastle生成的输出结果具有以下特点:
Ø 类似于MSDN布局的界面。
Ø 自动生成索引项、内容项目表、主题块和页面布局,提高一致性和熟悉程度。
Ø 自动生成语法宣称部分。
Ø 自动生成继承表。
Ø 代码彩色化。
Ø 提供多种风格和语言选择,终端用户可从中选择自己最喜欢的形式。
Ø 输出结果以HTML和CSS形式显示,微软承诺将来提供更多选择。
二、软件使用
软件的使用方式大致有以下5种:
(1)使用Sandcastle原始的命令行方式
(2)Sandcastle Help File Builder
(3)SandcastleGUI
(4)Sandcastle CHM编译BAT脚本和配置实用工具
(5)DocProject
文章以第(2)种为例,介绍Sandcastle的使用
1、关于生成文档代码注释的规范:
在源代码文件中,具有规范格式的注释可用于指导工具Sandcastle.msi根据这些注释和它们后面的源代码元素生成 XML。使用这类语法的注释称为文档注释 (documentation comment)。这些注释后面必须紧跟用户定义类型(如类、委托或接口)或者成员(如字段、事件、属性或方法)。XML 生成工具称作文档生成器 (documentation generator)。由文档生成器产生的输出称为文档文件 (documentation file)。文档文件可作为文档查看器 (documentation viewer) 的输入;文档查看器Sandcastle是用于生成类型信息及其关联文档的某种可视化显示的工具。
新的代码注释规范需要使用以三个斜杠 (///) 开始注释,这些注释后面必须紧跟它们所注释的用户定义类型(如类、委托或接口)或者成员(如字段、事件、属性或方法).对注释解说需要使用有效的xml标记。
部分标记如下:
![](http://images0.cnblogs.com/blog/411269/201309/10094151-af72cc74d5bd453780eebc576aab99b7.jpg)
![](http://images0.cnblogs.com/blog/411269/201309/10094201-bd693c4fee2349b696d8b9928b64ee45.jpg)
![](http://images0.cnblogs.com/blog/411269/201309/10094218-02d08bf7ef5648fdba53217ea642b0fd.jpg)
2、下载并安装
--- Sandcastle http://sandcastle.codeplex.com/ //原始
--- SHFB(Sandcastle Help File Builder) http://shfb.codeplex.com/ //文章我们要用到的。
①如果之前安装过其它版本,请先卸载后再装。
②下载完成后解压,我使用的为SHFBGuidedInstaller_1970版本,得到如下
![](http://images0.cnblogs.com/blog/411269/201309/10094236-32906f91a478455db34e947d827c0f0c.png)
打开SandcastleInstaller.exe进入安装界面
![](http://images0.cnblogs.com/blog/411269/201309/10094246-a998a12edd7640469e5ab5575986a8a3.png)
安装相当简单,在连网的环境下,需要的组件会自动提示下载安装。测试时,除了MAML Schema IntelliSense 及MAML Snippet Files选择了跳过没有安装以外,其它全根据提示安装上了。(因为不明白那两个东西是做什么的)。
安装完成后,便可以在开始菜单中找到,打开程序,如下
![](http://images0.cnblogs.com/blog/411269/201309/10094301-a2921efdb7ad43bea33615d433e27b29.png)
a.打开软件后首先新建解决方案,注意不要建在桌面等位置,否则生成时会报错。
b.解决方案建成后,在Project Explorer 中右击 Documentation Sources 上右击添加需要生成帮助文档的dll文件。图中①处为我添加的需要生成帮助文档的dll文件
c.底下Content Layout1.content为生成的帮助文档的样式,完全可以不要。
d.选择要生成帮助文档的格式,如图中②处,我要生成html格式的帮助文档。
e.其它设置默认即可,过会底下会做介绍。
f.点击③处开始生成,如图
![](http://images0.cnblogs.com/blog/411269/201309/10094315-b8427f14ba234c06984aa19e00b2fd93.png)
g.生成完成后,会看到提示:
Build completed successfully at 09-09-2013 11:47 下午. Total time: 00:01:11.3906
即可在Sandcastle解决方案目录下看到Help文件夹,即是生成的帮助文件。
h.如果不能编译生成CHM文档或者生成CHM时报错,则需要安装HTML Help Workshop(需要用到其中的hhc.exe文件)
3、集成到Visual Studio中
a.回到Sandcastle安装程序目录 ,打开 InstallResources文件夹,看到以下三个文件
![](http://images0.cnblogs.com/blog/411269/201309/10094334-fdde36f0e1664707837beb46d4fd6bfe.png)
双击最下边的vsix文件,反应一会儿会弹出如下错误,即表示安装成功了:
![](http://images0.cnblogs.com/blog/411269/201309/10094348-2cd0c646ba2c462b849a280c14ce1932.png)
b.现在在解决方案中添加项目,如下
![](http://images0.cnblogs.com/blog/411269/201309/10094357-7ceec4f548ce4bfc9ee3a9e90ecc9c7a.png)
c.选择Documentation-->Sandcastle Help File Builder Project-->确定
![](http://images0.cnblogs.com/blog/411269/201309/10094406-7715fc3cf0db47278b0e695df67d40ca.png)
d.双击Project Properties 可以设置项目的属性
属性个性化定制主要属性有:
1.生成属性设置,如需要生成什么类型的文档(可选chm、网站站点等)
2.文档内容属性设置,如对命名空间的解说。(命名空间在C#代码中是不可以有注释的,故在此可以设置,也可以在项目中新建一个类NamespaceDoc.cs其代码为:
1 namespace TestForHelp 2 { 3 ///<summary> 4 ///These are the namespace comments for New <c>TestForHelp</c> 5 ///</summary> 6 [System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 7 classNamespaceDoc 8 { } 9 }
3.文档文件的属性设置:如页眉、页脚、版权信息。
e.同样,右击 Documentation Sources 上右击添加需要生成帮助文档的dll文件,可一次添加多个
f.在项目名上(如DocumentationHelp)右击,添加--新建项,可指定项目模板
![](http://images0.cnblogs.com/blog/411269/201309/10094418-46ab194e81804125a312fbee328956e9.png)
g.所有设置完成后,生成项目,即可得到想要的帮助文档,同样保存在项目下Help文件夹下。
h.再次提醒,如果不能编译生成CHM文档或者生成CHM时报错,则需要安装HTML Help Workshop(需要用到其中的hhc.exe文件)
参考资料:
3.使用 Sandcastle 生成 chm 帮助文档 (使用Sandcastle原始的命令行方式)
4.软件的帮助文档,讲得很全,但全是英文。