为你的类库生成类似于MSDN的帮助文档
.net开发人员都知道大名鼎鼎的MSDN帮助文章,对VS2008的MSDN帮助文档,微软是这么定义的:
“MSDN Library for Visual Studio 2008 是权威的开发人员文档。我们将继续为您提供有关 Visual Studio 2008 发行版本地帮助的最新信息,同时,我们还增强了帮助选项,包括联机 F1 主题、搜索、索引以及联机或脱机使用目录的能力。有关本文档库改进功能的更多信息,请单击右侧的链接或访问新增功能页面。”
下面是MSDN的截图:
 
有没有想过为你的程序也生成类似的文档便于别的开发阅读你提供的类库的API文档呢?早期的开发人员可能知道NDoc这个工具,这是一个类似于JavaDoc的工具,它能将程序代码中的XML注释提取出来生成帮助文档,非常方便。
什么?你不知道什么是XML注释?看下图:
 
XML注释可以在别人在VS中编写代码获得智能感知效果时看到,如下图:
 
有 时候因为某些原因不能提供程序源代码,这样就不能方便查看类库中的类和对应的方法了。早期的.net开发人员可以用NDoc来生成类库的API文档,不过 NDoc不支持.net 2.0了(据说是作者知道微软要推出类似的工具停止了更新的),网上虽然有一些在NDoc的基础上开发的支持.net 2.0的版本,但是在使用过程中偶尔会出现一些问题。
微软推出了一款小软件就支持这种功能,支持生成CHM格式或者Hxs格式的文档,这款软件就是Sandcastle,它可以从http://download.codeplex.com网站上下载,下载地址是:
http://sandcastle.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=13873(如果英文不好的朋友可可以在http://download.csdn.net/zhoufoxcn下载)
从 网上下载这个软件之后采用默认安装之后(假设默认安装在C:\Program Files目录下),在其安装目录下的Examples\generic会看到一个名为SandcastleGui.exe的文件,这个文件就是 Sandcastle的图形化用户界面。这个软件的界面很简单,如下图所示:
 
Sandcastle 是根据程序集和对应的XML注释文档来生成帮助文档的。不过在默认情况下是不会生成程序的XML注释文档的,需要在VS中做一下配置,在要生成帮助文档的 项目上点击鼠标右键然后选择查看属性,这样就会出现项目属性配置界面,再点击“生成”选项卡,如下图所示:
 
选择XML文档注释,这样每次编译成功时就会生成相应的XML文档注释,默认是与生成的程序集文件在同一个目录下。
运行Sandcastle,分别添加程序集和XML文档注释,如果程序集有依赖的程序也添加一下,并且填写保存文件的名称,如果没有问题的话就会生成相应的API文档了,如果有问题就会在日志窗口看到错误信息,如下图所示。
 
从 上图窗口中可以成功生成了NS.Common.chm文档,文档路径为:c:\Program Files\Sandcastle\Examples\NS.Common\vs2005\chm\NS.Common.chm,大小为126,213 bytes。打开c:\Program Files\Sandcastle\Examples\NS.Common\vs2005\chm\文件夹,确实可以看到一个chm文件,打开这个chm 文件,会看到如下效果:
 
看到这个界面是不是跟MSDN有些相似呢?至此,大功告成了。顺便提一下,这个软件是公开源代码的,如果有那位朋友有兴趣和时间并且English不错的话,可以将它汉化成中文的那就更好了,不过这个工具操作非常简单,即使不汉化也容易上手。
注:Sandcastle 支持将多个程序集的XML文档注释生成一个chm文件的功能,可以将多个程序集和对应XML文档注释分别放在两个文件夹下,然后用AddFolder功能 一次性将文件夹下的文件添加到项目中,这样就可以将多个程序集的XML注释合并生成一个CHM文档了。
周公
于2009-4-26 01:26

转载于:https://blog.51cto.com/zhoufoxcn/162935

让Sandcastle为你的类库生成类似于MSDN的帮助文档相关推荐

  1. 用Swashbuckle给ASP.NET Core的项目自动生成Swagger的API帮助文档

    Swagger是一个描述RESTful的Web API的规范和框架.如果使用ASP.NET的话,可以用Swashbuckle来自动生成Swagger,具体参考如何使 WebAPI 自动生成漂亮又实用在 ...

  2. 怎么用计算机做目录,word怎么生成目录,教您Word文档如何自动生成目录

    word是我们常用的文字编辑器,学会一些word基本操作,使办公更加方便.我们平时写文章或写论文的时候为了方便,文章生成一个目录在查找的时候就很容易找到,如何生成目录呢?下面,小编给大家介绍Word文 ...

  3. 执法文书打印的实现(二):基于freemaker技术生成可打印的word文档

    执法文书打印的实现(二)     基于freemaker技术生成可打印的word文档: 基于FreeMarker生成word.doc文档是一项比较成熟的技术.前承上篇博客(),这个方案只能在windo ...

  4. java扫描接口_一种扫描接口并生成可调用API接口文档的方法与流程

    本发明属于JavaWeb开发技术领域,涉及一种API接口文档的生成方法,尤其是一种扫描接口并生成可调用API接口文档的方法. 背景技术: API(Application Programming Int ...

  5. springboot结合Freemarker模板生成docx格式的word文档(附代码)

    首先参考的是这篇文章: java利用Freemarker模板生成docx格式的word文档(全过程) - 旁光 - 博客园参考:https://my.oschina.net/u/3737136/blo ...

  6. Java使用POI生成柱状图导出到word文档(柱状图)

    本篇文章主要介绍,如何使用Apache POI组件生成柱状图导出到word文档中,具体步骤看下文. 一.实现效果 Java使用POI技术生成柱状图导出到word文档中,最终生成的柱状图如下所示: 二. ...

  7. swagger php 生成api,blog/Swagger生成php restful API接口文档.md at master · lfq618/blog · GitHub...

    Swagger生成php restful API接口文档 背景 我们的restful api项目采用yaf框架, 整体结构简单, 我们只需要用swagger扫描 application目录即可. 下面 ...

  8. java利用Freemarker模板生成docx格式的word文档(全过程)

    参考汇总: wordexport: JAVA生成并导出Word文档技术论证 java利用Freemarker模板生成docx格式的word文档(全过程) - 旁光 - 博客园 # 参考资料 - 其他项 ...

  9. C# 代码注释生成代码提示和帮助文档

    C#文档注释格式: /// <summary> /// function description /// </summary> /// <param name=" ...

最新文章

  1. 互联网50年类脑架构技术演化图
  2. 超强PHP集成环境,支持800多个不同PHP版本同时运行,无限自定义添加mysql与php版本...
  3. linux下卸载自带的JDK和安装想要的JDK
  4. 安装ROS环境时的常见问题及解决办法
  5. .net html5 框架,ASP.NET - 介绍 ASP.NET Web 窗体框架的导航 | Microsoft Docs
  6. protobuf windows lib链接库生成
  7. 转载! 一图读懂 SignalR
  8. mysql排序同值排名一致
  9. STM8S103之tim2PWM输出
  10. 二叉树前中后序遍历【非递归】
  11. mysql绿色版安装、局域网访问配置
  12. 产品经理——工作规范指南
  13. HttpMessageConverter 专题
  14. 【vpn异地组网专题】linux(centos7)安装 PPTP服务器
  15. 在这个阳光明媚的下午
  16. 2022年度总结 - 明月醉窗台
  17. Android学习笔记之清单文件
  18. 深度学习技术是我国制造光刻机弯道超车的机会吗?
  19. 服装店用什么收银-纳客收银系统
  20. rhino android js,js浏览器版本和移动端版本总结

热门文章

  1. 测试linux写文件系统,linux下各主要文件系统的读写性能测试
  2. 大一java实训报告1500字_从800字小作文,到3000字小论文你用了多久? | 校媒FM
  3. 2021年春季学期-信号与系统-第九次作业参考答案-第二小题
  4. 2021年春季学期-信号与系统-第三次作业参考答案-第五道题
  5. SP-45ML光电二极管放大电路及其动态特性
  6. 华南赛区线上比赛安排
  7. 第十五届全国大学智能汽车提问回答问题 2020-8-9
  8. 动图与数据同步关系研究
  9. 怎样让小写自动转换成大写_办公软件操作技巧031:如何在word中输入大写数字...
  10. java中的进制输出转换_Java I/O : Java中的进制详解