注:NDoc是一个Open Source的For .Net 文档自动生成软件。它可以通过 .Net中XML的注释标签来生成非常漂亮的MSDN风格的类库文档。(相对于VS.Net自己带的Comment Web Page生成工具好多了)<?xml:namespace prefix = o />

 

《在Vs.net中集成 NDoc生成的 Html Help 2帮助文档》

By: Fons Sonnemans

编译:<?xml:namespace prefix = st1 />linkcd

 

代码下载:NDocSample.zip

 

简介:

NDoc 可以根据C#编译器编译出的.Net组件(Assemblies)和XML文档来生成类库的文档。 NDoc可以由附加的文档器(documenter)来生成不同格式的文档,包括MSDN风格的HTML Help File(.chm), VS.net帮助文档(Html Help2),以及MSDN风格的Web在线文档。

(译注:产生的格式要比VS.net自己由xml tag生成的在线文档好看的多)

本篇文章分4个步骤来介绍如何由NDoc生成类库文档并集成到VS.net中。

1.        使用XML文档标记来注释您所编写的类库

2.        用NDoc来创建HTML Help 2文档

3.        使用H2Reg来注册帮助文档

4.        把帮助文档集成到VSCC

第一步:使用XML文档标记来注释您所编写的类库

我编写了一个简单的库,包括了2个类: Employee 和 EmployeeCollection。这些类都采用了XML风格的注释标签(///)。 这个组件被命名为ReflectionIT.NDocSample。

using System;

namespace ReflectionIT.NDocSample
{
    /// <summary>
    /// Employee class used to demonstrate NDoc and Visual Studio.NET integration.
    /// </summary>
    /// <example>
    /// Some sample:
    /// <code>
    /// Employee emp = new Employee("Jim", 4000);
    /// emp.RaiseSalary();
    /// Console.WriteLine(emp.GetYearSalary);</code>
    /// </example>
    public class Employee
    {
        private string _name;
        private int _salary;

/// <summary>
        /// Initializes a new instance of the Employee class with a name and salary.
        /// </summary>
        /// <param name="name">The name of the employee</param>
        /// <param name="salary">The salary of the employee</param>
        public Employee(string name, int salary)
        {
            this.Name = name;
            this.Salary = salary;
        }

/// <summary>
        /// Gets or sets the name of the employee.
        /// </summary>
        public string Name {
            get { return this._name; }
            set { this._name = value; }
        }

/// <summary>
        /// Gets or sets the salary of the employee.
        /// </summary>
        public int Salary {
            get { return this._salary; }
            set { this._salary = value; }
        }

/// <summary>
        /// Returns the year salary for the employee using 12 months
        /// </summary>
        /// <returns>The year salary</returns>
        public virtual int GetYearSalary() {
            return Salary * 12;
        }

/// <summary>
        /// Raise the salary with 10%
        /// </summary>
        public virtual void RaiseSalary() {
            Salary += Salary * 10 / 100;
        }
    }
}

这个组件被命名为ReflectionIT.NDocSample。 同时,我把该组件生成的xml注释文件命名为ReflectionIT.NDocSample.XML 。请确认xml文件的名字和该组件的名字一致,否则IntelliSense将无法正确的工作。最后不要忘记编译该组件:编译之后就会生成这个xml文件。

第二步:使用NDoc创建 HTML Help 2 文档

在NDoc中同时包括GUI前台程序(NDocGUI.Exe)和 控制台文件(NDocConsole.exe)。我使用 NDocGUI来创建一个NDoc项目给我的NDocSample类库服务。您也可以通过“New From Visual Studio Solutioin…”菜单项来进行。

现在,你要将文档类型(Documentation Type)设置为“HtmlHelp2”。此外,还可以根据项目不同的情况来修改一些额外的属性,比如CopyrightHref, CopyrightText, HtmlHelpName 和Title等等。

(译注1:CopyrightHref中请使用 http://www.ncsi.com.cn这样的格式,而不要仅仅写成www.ncsi.com.cn)
(译注2:NDoc同时还可以支持生成其他类型的文档。如果您不需要把文档集成到VS.net里面,只是想生成一个MSDN风格的在线Web页或CHM文件的话,可以省略下面2步)

在NDoc生成Html Help 2文档之前,你需要安装Microsoft Html Workshop 和 Microsoft Visual Studio .NET Help Integration Kit (VSHIK2003)。(译注:如果没有安装这些程序就企图生成Html Help 2, NDoc会报错)最后生成的结果就是一个编译过的ReflectionIT.NDocSample.chm 文件(译注:以及一堆MSDN那样的*.HxC, *.HxF等文件)。

第三步:使用H2Reg注册帮助文档

我使用H2Reg来注册 NDocSample帮助文档。H2Reg.exe是一个很小的程序(177K),它能让你不使用MSI(Microsoft Installer)来注册MS Help 2.x 集:Namespaces, Titles, Plug-ins, 和 Filters。

要使用H2Ref,您必须创建一个ini文件来描述需要注册的对象。在下面就是我用来注册NDocSample所用的ini文件。

;------- Register -r switch

[Reg_Namespace]
;<nsName>|<nsColfile>|<nsDesc>
ReflectionIT.NDocSample|ReflectionIT.NDocSample.HxC|ReflectionIT NDocSample

[Reg_Title]
;<nsName>|<TitleID>|<LangId>|<HxS_HelpFile>|<HxI_IndexFile>|<HxQ_QueryFile>|
;<HxR_AttrQueryFile>|<HxsMediaLoc>|<HxqMediaLoc>|<HxrMediaLoc>|<SampleMediaLoc>
ReflectionIT.NDocSample|ReflectionIT.NDocSample|1033|ReflectionIT.NDocSample.HxS|||||||

;------- UnRegister -u switch

[UnReg_Namespace]
;<nsName>
ReflectionIT.NDocSample

[UnReg_Title]
;<nsName>|<TitleID>|<LangId>
ReflectionIT.NDocSample|ReflectionIT.NDocSample|1033

我把这个ini文件和刚才生成的ReflectionIT.NDocSample.HxC文件放到一个Help文件夹里面。在这个文件夹使用-R参数来运行H2Reg。 我也写了一个下面的这个Register.bat批处理文件来简化操作。

copy ..\Ndoc\doc\*.hxS
copy ..\Ndoc\doc\*.hxC
"C:\Program Files\Helpware\H2Reg\H2Reg.exe" -r cmdfile="C:\My Documents\Visual Studio Projects\NDocSample\Help\H2Reg_cmd.ini"

(译注:在h2reg的网站中提到注册过程中可能会出现一些问题。请参考这里:http://helpware.net/mshelp2/h2tutorial.htm#dtd)

Here are some typical registration problems. Currently there are no known problems with H2Reg.exe itself.

1.     Registration works on the development machines only. Plug-in fails on customer machines.

Collection level .Hx? files must not contain reference to a DTD file.
The customer wont have VSHIK installed and thus wont have the DTD files.

2.     Registration fails due to VStudio MSI problems.

Registration problems often happen not because of the Registration system but because Visual Studio MSI Installation has corrupted the MS.VSCC namespace or the MS Help 2 runtime installation.

The solution here is to ask the customer to Repair the VStudio installation by using the VStudio Setup disks. Sometimes this involves a complete uninstall and reinstall.

第四步:把帮助文档集放入VSCC

现在我们要作的最后一步就是把我们自己的帮助文档集成到Visual Studio .NET 2003 Combined Help Collection (VSCC)中。使用浏览器打开这个超连接:ms-help://MS.VSCC.2003/VSCCCommon/cm/CollectionManager.htm  在这个页面里钩选ReflectionIT.NDocSample 框,然后点击“Update VSCC“ 按钮。

你可以改变.HxC文件中HelpCollection节点Title属性值,来使用一个更具有描述性的名称。

结果

经过以上步骤之后,你就能看到NDoc生成的文件已经集成到了Visual Studio.Net开发环境中。 只要按F1,它就会出现在Dynamic Help窗口中。

结论:

通过使用C#中的XML注释标签,以及NDoc和H2Reg,可以方便的对类库进行文档化,方便了项目中类库的使用和管理,也为类库重用打下了基础。

转载于:https://www.cnblogs.com/linkcd/archive/2004/12/23/80939.html

在Vs.net中集成 NDoc生成的 Html Help 2帮助文档相关推荐

  1. javadoc文档的生成方法_Cocoa 代码注释与文档生成

    Cocoa 代码注释与文档生成 本文的文档规范部分的内容参考自:NSHipster 的 Swift Documentation 作者 & Nate Cook 本文知识目录 背景 曾经以为好的代 ...

  2. Java使用POI生成折线图导出到word文档(折线图)

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

  3. Sandcastle方法生成c#.net帮助类帮助文档chm

    Sandcastle方法生成c#.net帮助类帮助文档chm Sandcastle方法生成c#.net帮助类帮助文档即chm后缀的文档,其实是通过C#文档注释生成的XML文件来生成帮助文档的.因此,第 ...

  4. java根据pdf模板生成pdf_Java 复制、压缩PDF文档

    在日常办公中,掌握操作PDF文档的能力尤为重要.在前文中我使用Java程序来演示过如何合并和拆分PDF文档.本文将介绍如何复制和压缩文档.通常复制文档有两种形式,一种是跨文档复制,即将一个文档复制到另 ...

  5. 【知识小课堂】 mongodb 之字段中的【 数组】、【内嵌文档】

    一.介绍 MONGODB 的表结构 很灵活 .主要还是因为 字段中可以包含 [ 数组].[内嵌文档]. 现在简单介绍一下 字段中的[ 数组].[内嵌文档]相关的一些操作 (为了方便理解,还是以表来理解 ...

  6. office选项-》高级-》显示 中, 显示此数目的“最近使用的文档” 为灰色,无法更改

    问题1:office选项-->高级-->显示中, 显示此数目的"最近使用的文档" 为灰色,无法更改问题2:office中您的管理员已关闭最近工作簿列表.请选择一个打开工 ...

  7. word中装订线位置_Word操作技巧:Word文档双面打印全攻略,解决打印难题

    各位亲爱的小伙伴,大家好! Word作为最常用的办公软件,撰写文档,文档排版.打印文档等都会用到.其中,打印文档可以算是工作过程中最常用到的技能了,但对Word的打印功能你了解多少? 今天我来给大家介 ...

  8. 亿愿Word文档批量多语言翻译---word文档翻译专家!几十种语言随意快速互译!可以生成中外文,中英文对照内容文档!

    亿愿Word文档批量多语言翻译-软件功能简介 [亿愿Word文档批量多语言翻译]采用目前最强大的.国际著名公司的谷歌翻译引擎,自动识别语言种类,把英文.日文.韩文.德文.法文.俄文等几十种外国语言的文 ...

  9. java生成word文档 图片_java生成带有图片的word的文档-Go语言中文社区

    生成带有图片的word的文档 @RequestMapping(params ="getWordByDate",produces = "text/html;charset= ...

最新文章

  1. 她,诗人拜伦之女,英国数学家,历史上第一位程序员
  2. 一个月后的2016产品汪温馨提示
  3. 从Weex到Web,性能逆势如何破局?
  4. java切片_ java中一个极其强悍的新特性Stream详解(非常实用)
  5. 2.任务包多线程并行计算
  6. 九九乘法表 利用for语句
  7. WebGL多模型光照综合实例
  8. 2018 为自己加油!
  9. C# 从入门到精通 学习笔记2 第3章 方法和作用域
  10. Python代码混淆工具,Python源代码保密、加密、混淆
  11. python-office自动化办公:Word批量转PDF
  12. C#中的控件Binding
  13. 青山~深入理解mysql
  14. shadowplay要下载java,BBC 100件藏品中的世界史083:Shadow puppet of Bima皮影戏字符段
  15. 后BT时代,我们该怎么办?
  16. 基础——VMware安装CentOS7并初始配置
  17. Go语言解决go get失败的问题
  18. 阿里云服务器 开放端口
  19. c语言关键字中英翻译机课程设计,课程设计--C语言关键字中英翻译机.doc
  20. Volley 登录注册

热门文章

  1. 谷歌官方推出 TensorFlow 中文视频:机器学习从零到一(系列之二)
  2. 收藏 | 图解 Git 工作原理
  3. 阿里人工智能实验室招聘计算机视觉算法专家-交互图像方向
  4. 神器:多卡同步的Batch Normalization
  5. 常用机器学习算法优缺点及其应用领域
  6. python计算iris数据集的均值_K均值(K-Means)
  7. python模拟手机充值场景_appium+Python实例(二)模拟新建场景表(辅助测试执行)...
  8. 用python写helloworld_Python基于Tkinter的HelloWorld入门实例
  9. 组网胖模式_胖瘦AP组网优劣对比,你知道吗?
  10. Zookeeper工作原理(详细)