這篇是延續上一篇,要使用Sandcastle產生HelpDoc,必須先在C#中產生XML說明文件(VB.Net也可以用同樣的方法,只是註解寫法有 點不一樣),而Sandcastle則利用這樣的說明文件去產生HelpDoc,這篇由C#的註解方式講起,簡單說明該如何產生XML說明文件
C#的註解方式以及XML的說明文件
C#提供了兩種註解方法,跟C以及JAVA蠻類似的
單行註解用 //註解
多行則是用
/*
註解
*/
但是以上註解是幫助用來讓Programer了解程式邏輯,只有能看到Source Code的人看得到這些註解,
如果我們要提供API或者library給別人呼叫,就必須提供類似Javadoc的API說明文件,這樣使用者才
會知道這些API的使用方法,以及傳入傳出的參數,而C#的XML註解就可以達到這個功能
C#的XML文件註解方式主要是在souce code中以一般註解的方式加入特定的標籤<tag>,在.Net
Project Build up時,及會同時產生說明文件
大致寫法如下:
/// <summary>
/// Test Project
/// </summary>
public class Test
{
/// <summary>
/// Add two number
/// </summary>
/// <param name="i">1st add number</param>
/// <param name="j">2nd add number</param>
/// <returns>sum</returns>
public int add(int i, int j){
....
}
}
另外也可以寫成這樣用多行註解的形式
/**
<summary>
Test Project
</summary>
*/
多行註解還有很多方式可以用,但是給他有點複雜,詳細可以參考 MSDN裡面的文件標籤的分隔符號 (C# 程式設計手冊)
http://msdn.microsoft.com/zh-tw/library/5fz4y783(v=VS.80).aspx
上面Sample Code用到的Tag
<summary>description</summary>
<summary> 標記應用於描述型別或型別成員。使用 <remarks> 為型別描述加入補充資訊。
<summary> 標記的內容會是 IntelliSense 中有關型別資訊的唯一來源,也會在物件瀏覽器中顯示。
<param name='name'>description</param>
參數 name 為方法參數的名稱。以雙引號 (" ") 將名稱括起來。
<param> 標記應使用於方法宣告的註解中,以描述該方法其中之一的參數。
<param> 標記的文字將會顯示在 IntelliSense、物件瀏覽器和程式碼 Web 註解報告中。
<returns>description</returns>
<returns> 標記應使用於方法宣告的註解來描述傳回值。
上述的標籤可以參考 MSDN建議使用的文件註解標籤 (C# 程式設計手冊)
http://msdn.microsoft.com/zh-tw/library/5ast78ax(v=VS.80).aspx
最後Project要Build前要在Properties中加入指定輸出XML 以下圖例VS2010
例子:
/// <summary>
/// Hello Example
/// </summary>
/// <remarks>
/// Copyright (C) Microsoft Corporation. All rights reserved.
/// </remarks>
public class Hello1
{
/// <summary>
/// Main Function, not a method
/// </summary>
/// <returns>system print out, no return</returns>
public static void Main()
{
Hello1 he1 = new Hello1();
he1.rt_add(1, 2);
System.Console.WriteLine("Hello, World!");
}
/// <summary>
/// Add method
/// </summary>
/// <param name="i">1st num for adding</param>
/// <param name="j">2nd num for adding</param>
/// <returns>return 1st num + 2nd sum</returns>
public int rt_add(int i,int j)
{
return i + j;
}
}
產生出來的結果:
<?xml version="1.0" ?>
<doc>
<assembly>
<name>HelloWorld1</name>
</assembly>
<members>
<member name="T:Hello1">
<summary>Hello Example</summary>
<remarks>Copyright (C) Microsoft Corporation. All rights reserved.</remarks>
</member>
<member name="M:Hello1.Main">
<summary>Main Function, not a method</summary>
<returns>system print out, no return</returns>
</member>
<member name="M:Hello1.rt_add(System.Int32,System.Int32)">
<summary>Add method</summary>
<param name="i">1st num for adding</param>
<param name="j">2nd num for adding</param>
<returns>return 1st num + 2nd sum</returns>
</member>
</members>
</doc>
接著再利用XML以及exe或dll就可以在Sandcastle中產生HelpDoc (.chm)
延伸閱讀:
2011年6月27日 星期一
[Sandcastle V2.6] 使用Sandcastle Help File Builder V1.9 製作Help Doc (VS.NET)
最近因為專案要用.Net solution,利用Sandcastle製作Help Doc,由於網路上能找得的說明文章都是舊版的,介面等等有點不一樣,所以Seven在研究之後乾脆自己寫一篇。Sandcastle是一個 Microsoft提出的套件,當初好像為了取代NDOC,這個套件可以用來產生.chm或者WebBase的說明文件,有點像是Javadoc,但是由 於Sandcastle只有命令提示模式,所以需要Sandcastle Help File Builder來提供GUI介面,讓使用者可以更方便操作
需要安裝的元件如下:
Sandcastle June 2010 Release (V2.6.1062.1)
http://sandcastle.codeplex.com/
Sandcastle Help File Builder Jul 7 2010 Release (SHFB V1.9.1.0)
http://shfb.codeplex.com/
這個版本會refer上面V2.6.1062.1,如果上面Sandcastle是舊版的話就會Build Project失敗
HTML Help Workshop(for Building .chm)
http://msdn.microsoft.com/en-us/library/ms669985.aspx
.NET Framework 3.5 SP1 如果有裝VS.net應該都會有這個,裝2010的話應該會是V4.0版
MS Help 2 compiler (for building MS Help 2 .HxS) VS2005 VS2008要下載安裝SDK,如果當初安裝VS的時候有裝就不用再下載
VS2005 SDK 或者
VS2008 SDK
VS2010則在安裝時候就會一並安裝了,所以不用
如果是VS2005或者VS2008,裡面會包含舊版的Sandcastle,請檢查環境變數
把DXROOT指到新安裝的目錄 ex C:\Program Files\Sandcastle
[更改環境變數需要重開機才會生效]
測試你安裝的SandCastle Help File Builder是否可正常使用
1.打開SandCastle
2.New一個Project
3.在Project Explorer中[Documentation Sources]滑鼠右鍵[Add Documentation Resource]
選取sample file中的檔案做測試,加入下面兩個檔案
C:\Program Files\Sandcastle\Examples\Sandcastle\test.dll
C:\Program Files\Sandcastle\Examples\Sandcastle\comments.xml (這個要加,不然會沒有說明)
4.按Save,接著Documentation中[Build Project]
如果順利build完沒有Error
最後要出現Build complete successfully at.....
5.[Documation]->[View Help File]應該就會看到Help File
跟C:\Program Files\Sandcastle\Examples\Sandcastle\test.cs對照一下
因為這個Increment有overloading,所以有兩個method以及註解
這樣就表示Sandcastle Help File Builder可正常使用
延伸閱讀:
[.Net] C#的註解方式以及XML的說明文件
需要安裝的元件如下:
Sandcastle June 2010 Release (V2.6.1062.1)
http://sandcastle.codeplex.com/
Sandcastle Help File Builder Jul 7 2010 Release (SHFB V1.9.1.0)
http://shfb.codeplex.com/
這個版本會refer上面V2.6.1062.1,如果上面Sandcastle是舊版的話就會Build Project失敗
HTML Help Workshop(for Building .chm)
http://msdn.microsoft.com/en-us/library/ms669985.aspx
.NET Framework 3.5 SP1 如果有裝VS.net應該都會有這個,裝2010的話應該會是V4.0版
MS Help 2 compiler (for building MS Help 2 .HxS) VS2005 VS2008要下載安裝SDK,如果當初安裝VS的時候有裝就不用再下載
VS2005 SDK 或者
VS2008 SDK
VS2010則在安裝時候就會一並安裝了,所以不用
如果是VS2005或者VS2008,裡面會包含舊版的Sandcastle,請檢查環境變數
把DXROOT指到新安裝的目錄 ex C:\Program Files\Sandcastle
[更改環境變數需要重開機才會生效]
測試你安裝的SandCastle Help File Builder是否可正常使用
1.打開SandCastle
2.New一個Project
3.在Project Explorer中[Documentation Sources]滑鼠右鍵[Add Documentation Resource]
選取sample file中的檔案做測試,加入下面兩個檔案
C:\Program Files\Sandcastle\Examples\Sandcastle\test.dll
C:\Program Files\Sandcastle\Examples\Sandcastle\comments.xml (這個要加,不然會沒有說明)
4.按Save,接著Documentation中[Build Project]
如果順利build完沒有Error
最後要出現Build complete successfully at.....
5.[Documation]->[View Help File]應該就會看到Help File
跟C:\Program Files\Sandcastle\Examples\Sandcastle\test.cs對照一下
因為這個Increment有overloading,所以有兩個method以及註解
這樣就表示Sandcastle Help File Builder可正常使用
延伸閱讀:
[.Net] C#的註解方式以及XML的說明文件
訂閱:
文章 (Atom)



