一、功能描述

  关于Sandcastle网上的参考资料相对较少,Google出来很多资料都是全英文的,相对于我这种英语渣渣看起来还是很费劲的。

  言简意赅,Sandcastle主要功能是能够将C#类生成类似MSDN风格帮助文档的工具,支持本地化,并提供一个基本的命令行编译器界面和一个Visual Studio插件。
优点:

  1.生成简单,工作量小,几分钟之内就能完成一个项目的api文档制作。
  2.自动生成索引项、内容项目表、主题块和页面布局,提高一致性和熟悉程度。
  3.代码高亮,易读性强
  4.生成api界面美观。
缺点:

  只支持visual studio,意思是只支持微软旗下产品。

二、下载与安装

  我是在github中下载的sandcastle,链接隧道 https://github.com/EWSoftware/SHFB/releases,下载时需注意版本号,我没有看版本备注就直接下载了最新版本的sandcastle,安装后生成api后直接报错了,不能生成成功。后来排查后发现是版本问题,我的IDE是vs2013,当前sandcastle版本只支持最低vs2015的IDE,所以一直报错。

这个版本中备注描述的很清楚,这是最后一个支持vs2013的版本。

三、配置SandCastle

  主要配置详解

3.1 首先打开SandCastle,新建一个文件用来存放sandcastle新建的工程文件,类似vs中新建项目后的解决方案。

3.2 在项目属性中选择需要生成的api类型,如果你想生成类似MSDN帮助文档风格,就可以选择Website。

3.3 Framework version 选择生成解决方案的framework版本号,如果与之不一致,则生成api时会报错

  chm类型生成的文档(参考)

   website类型

  在vs中的引用类按f1可打开该类的帮助文档。

3.4.点击Project Explorer,点击新建的api文件,右击Documentation Sources选择Add Document Source

  

3.5 选择的类库生成属性中需在输出中xml文档文件复选框打钩在生成,否则生成api无效。

3.6 选择所需生成的类库,也就是后缀名为.csproj的文件即可

四、常见错误

4.1 SHFB: Error BE0043: Unexpected error detected in last build step.  See output above for details.

  错误信息的意思是缺少程序集的引用,那我就需要把不用的程序集剔除掉,那么如何剔除呢,请看一下操作

  

  

4.2 SHFB: Error BE0064: BUILD CANCELLED BY USER

  这个错误是由于框架版本不一致所引起的,也就是如果该项目生成时选择的framework版本为4.5,而sandcastle配置的是4.0版本,那么就会报错。

4.3 Sandcastle [丢失<summary> 节点]的问题

  遇到这个问题,首先查看代码注释是否有<summary>节点,是否规范。

  

  然后有人会说我明明在代码中已经定义了summary 节点,为什么还会报这种错呢?

  这种我尝试最暴力的方法就是让它不提示这个错误,在sandcastle中设置missing tags,取消<summary> elments 的报错信息,点击取消复选框,哪个节点的报错就不会报错。

  

五、SandCastle在vs中的使用

  前面说了都是sandcastle软件的独立使用,还有一种方法是将其集成在vs中使用,使用方法与独立使用相差不大。

如果是已经安装了sandcastle,那么请忽略以下安装步骤。

5.1 在sandcastle目录文件夹下找到后缀为vsix的插件,双击执行,如果弹出此扩展已安装,那么表示安装成功

  

5.2 在需生成api的项目下添加项目,如果已安装成功,那么在已安装的扩展插件中Documentation就会出现sandcastle插件,输入名称,存放位置,点击确定添加。

  

  5.3.添加完成后,此时的操作和不是集成在vs中的无明显差别,如需生成文档,右击新建的文件,点击生成即可。

  

六、运行生成API

  上面所有步骤完成之后就可以运行sandcastle了,点击build the help file生成

  

  生成成功之后在当前生成目录下,查看生成文件是否齐全,如果文件不全,那么原因在于生成不成功或配置不正确

  

  双击index.html查看api中是否有报错信息,代码是否高亮,链接是否可点。

文档API生成神器SandCastle使用心得的更多相关文章

  1. 百度地图和高德地图坐标系的互相转换 四种Sandcastle方法生成c#.net帮助类帮助文档 文档API生成神器SandCastle使用心得 ASP.NET Core

    百度地图和高德地图坐标系的互相转换   GPS.谷歌.百度.高德坐标相互转换 一.在进行地图开发过程中,我们一般能接触到以下三种类型的地图坐标系: 1.WGS-84原始坐标系,一般用国际GPS纪录仪记 ...

  2. java 文档自动生成的神器 idoc

    写文档 作为一名开发者,每个人都要写代码. 工作中,几乎每一位开发者都要写文档. 因为工作是人和人的协作,产品要写需求文档,开发要写详细设计文档,接口文档. 可是,作为一个懒人,平时最讨厌的一件事情就 ...

  3. 将C#文档注释生成.chm帮助文档

    由于最近需要把以前的一个项目写一个文档,但一时又不知道写成怎样的,又恰好发现了可以生成chm的工具,于是乎我就研究了下,感觉还不错,所以也给大家分享下.好了,不多废话,下面就来实现一下吧. 生成前的准 ...

  4. 工具分享——将C#文档注释生成.chm帮助文档

    由于最近需要把以前的一个项目写一个文档,但一时又不知道写成怎样的,又恰好发现了可以生成chm的工具,于是乎我就研究了下,感觉还不错,所以也给大家分享下.好了,不多废话,下面就来实现一下吧. 生成前的准 ...

  5. 优于 swagger 的 java markdown 文档自动生成框架-01-入门使用

    设计初衷 节约时间 Java 文档一直是一个大问题. 很多项目不写文档,即使写文档,对于开发人员来说也是非常痛苦的. 不写文档的缺点自不用多少,手动写文档的缺点也显而易见: 非常浪费时间,而且会出错. ...

  6. jQuery全屏滚动插件fullPage.js中文帮助文档API

    jQuery全屏滚动插件fullPage.js中文帮助文档API   发现了一个fullPage.js插件,于是百度了一下,还就是这个插件的作用,其实有很多网站都做了全屏滚动的特效,效果也很好看,今天 ...

  7. springboot成神之——swagger文档自动生成工具

    本文讲解如何在spring-boot中使用swagger文档自动生成工具 目录结构 说明 依赖 SwaggerConfig 开启api界面 JSR 303注释信息 Swagger核心注释 User T ...

  8. VS文档自动生成

    VS2008文档自动生成 (发现,Sandcastle主要是用于C#项目.里面的注释都是XML格式的.不太适合VC的.最终还是得用Doxygen) 一.Sandcastle简介: Sandcastle ...

  9. 将C#文档注释生成.chm帮助文档(转)

    由于最近需要把以前的一个项目写一个文档,但一时又不知道写成怎样的,又恰好发现了可以生成chm的工具,于是乎我就研究了下,感觉还不错,所以也给大家分享下.好了,不多废话,下面就来实现一下吧. 生成前的准 ...

随机推荐

  1. PHP环境搭建——Apache

    1.PHP环境安装前我们需要知道PHP给我们带来的功能是什么? Php主要用在三个领域 (1)       网站和web应用程序 (2)       命令行脚本 (3)       桌面(GUI)应用 ...

  2. 解决删除元素动画的bug

    效果说明 首先说明一下我需要做到的效果 其实很简单---点击删除按钮的时候,加入删除动画 删除动画是这样的,高度和宽度都会均匀的变小,内部的元素需要被隐藏(因为会有文字挤在一起):直到变为0结束,时长 ...

  3. [补档]暑假集训D8总结

    %dalao 今天有两位大佬来讲课,meaty来讲了Catalan(本来说好的莫比乌斯反演呢),聪聪来讲Splay呢 至于听课笔记= =,没来得及记= = 不过好不想上树啊,上了树就下不来了 考试 仍 ...

  4. hdu--1013--Digital Roots(字符串)

    Digital Roots Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  5. C语言中全局变量存放在哪个位置?

    今年软考的时候,遇到了这个题目,表示不解,然后考完之后去查了一下百度,才发现自己选错.全局变量存放在静态存储区,位置是固定的. 局部变量在栈空间,栈地址是不固定的.栈:就是那些由编译器在需要的时候分配 ...

  6. uiautomator +python 实现安卓自动化

    很多人看到这个题目我相信他们可能会说,uiautomator不是java开发的吗?python怎么用呢,其实呢 ,一开始我也是这么想的,看了金阳光老师的视频,也是用java写的,我表示不服,我要科学上 ...

  7. html5 mdn一些精彩的案例

    https://developer.mozilla.org/zh_CN/docs/Games/Examples

  8. 前端到后台ThinkPHP开发整站(4)

    今晚继续我的这个项目的开发,今晚也是写的不多,主要写了一个菜单管理功能的CURD方法,前端界面还没有进行编写. 菜单管理Model层的代码: <?php namespace Common\Mod ...

  9. python练习题一

    1.使用while循环输出1 2 3 4 5 6     8 9 10 答:i=0 while i<10:     i += 1     if i!=7:         print(i) 2. ...

  10. 【转】VLAN原理详解

    1.为什么需要VLAN 1.1 什么是VLAN? VLAN(Virtual LAN),翻译成中文是“虚拟局域网”.LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络.V ...