C# と .NET Framework 4 を主にWindows Formのアプリケーション開発について

2006年7月30日

Sandcastle CTP版 を試した Sandcastle CTP版 を試した

最新情報:Sandcastleまとめページ

早速サンドキャッスル(Sandcastle) CTP版を試してみた。 NDoc 2.0が止まっている今となっては、サンドキャッスルに大きな期待をしている。それにしても、日本語での情報が余りに少ないのはどうなのだろう。 日本では余り需要が無いのだろうか。 GrapeCityをはじめとする.NET コンポーネントを販売している企業も余り多くはないと思うが、システム開発関連でもドキュメント生成は必要だと思うのだが...。 まあ、自分が使いたい(仕事を含めて)ということで、早速ダウンロードして試してみた。

インストールを行うと、少なくとも環境変数PATHは変更されるようです。
ミッション クリティカルな環境に入れないように注意する必要があります。

Sandcastleの動作要件

Sandcastle CTP版を動作させるには、.NET Framework 2.0とHTML Help Workshop が必要となります。
.NET Framework 2.0 は Windows Updateからインストールすることが出来ます。
HTML Help Workshop は CHM の生成に使用されるための次のURLからダウンロードしてインストールしておきます。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/hwMicrosoftHTMLHelpDownloads.asp

ダウンロード

Sancastle CTP版は次のURLからダウンロードしてインストールします。 http://www.microsoft.com/downloads/details.aspx?FamilyId=E82EA71D-DA89-42EE-A715-696E3A4873B2&displaylang=en

/// によりコメントされたC#のコードを元にCHMを生成してみる

試しに、ここまでのMicroRssReaderのコードを使用してヘルプを生成してみます。 MicroRssReaderのプロジェクトはXMLドキュメントを生成するように設定されていないため、まずプロジェクトを変更します。

XMLドキュメントを生成するためプロジェクト設定の変更

  1. MicroRssReaderのソリューションを開きます。
  2. MicroRssReaderのプロジェクトプロパティを表示します。
  3. 「ビルド」タブを選択します。
  4. "出力"項目の「XML ドキュメント ファイル」にチェックを入れます。
  5. リビルドします。


CHMを生成してみる


まず、SandcastleBlog内の説明に従ってヘルプを生成してみます。

1. コマンドプロンプトを開き、プロジェクトのbin¥Debugに移動します。

cd C:\Develop\RSSリーダを作る\RssReader\MicroRssReader\bin\Debug

2. 次に、MRefBuilderを実行します。

MRefBuilder MicroRssReader.exe /out:reflection.org

3. 変換を行います。

set prodtrans="C:\Program Files\Sandcastle\ProductionTransforms"
XslTransform %prodtrans%\AddOverloads.xsl reflection.org |
XslTransform %prodtrans%\AddGuidFilenames.xsl /out:reflection.xml

4. マニフェストを生成します。

XslTransform %prodtrans%\ReflectionToManifest.xsl reflection.xml /out:manifest.xml

5. 次のようなバッチファイルを作成して保存しておきます。
ファイル名は copyOutput.batにします。

set sandcastle="C:\Program Files\Sandcastle"
if not exist Output mkdir Output
if not exist Output\html mkdir Output\html
if not exist Output\art mkdir Output\art
if not exist Output\scripts mkdir Output\scripts
if not exist Output\styles mkdir Output\styles
copy %sandcastle%\Presentation\art\* Output\art
copy %sandcastle%\Presentation\scripts\* Output\scripts
copy %sandcastle%\Presentation\styles\* Output\styles

6. バッチファイルを実行します。

copyOutput.bat

7. コンフィグレーションをコピーして編集。

copy "C:\Program Files\Sandcastle\Presentation\Configuration\sandcastle.config" .

コピーしたsandcastle.configをエディタで開き、次のように置換を行い保存します。
"..\.." → "C:\Program Files\Sandcastle"
"..\cpref_reflection" → "C:\Program Files\Sandcastle\Examples\Cpref_reflection"
"comments.xml" → "MicroRssReser.XML"

8. BuildAssembler を実行します。

BuildAssembler /config:sandcastle.config manifest.xml

9. HTMLヘルプのTOCを生成します。

XslTransform %prodtrans%\ReflectionToChmContents.xsl reflection.xml 
/arg:html=Output\html /out:test.hhc

10. test.hhc を Outputディレクトリに移動する

copy test.hhc Output

11. hhp を Outputディレクトリにコピーする

copy "C:\Program Files\Sandcastle\Presentation\Chm\test.hhp" Output

12. Chmを生成するために hhc (HTML Help 1.x Compiler)を実行します

cd Output
"C:\Program Files\HTML Help Workshop\hhc" test.hhp

13. Chmを表示

test.chm

興味がある人のために、生成されたCHMファイルをサンプルとして置いておきます。
Test.zipファイルをダウンロード


出力結果について

  1. MSDNの形式とも異なるため、見慣れない感があります
  2. 日本語も正しく表示され、特に化けている所などもありません。
  3. ///で書いているコメントも表示されていますが、任意改行が無視されています。
  4. 単に継承しているメンバを消せるのは良いですね。
  5. ジェネリックも正しくドキュメント出力されています。
  6. メソッド パラメータの型等が自動的にリンクにならない。
  7. フッタ(Copyrightの所)の変更方法が説明されていない。
  8. 複数のDLLやEXEからドキュメントをマージ生成する方法が説明されていない
  9. MSDNへのリンクが自動生成されない。
  10. privateメンバをドキュメントに出力する方法が分からない


Sandcastle CTP版の印象


とりあえず、どのようなドキュメントが生成されるかは分かります。 ドキュメントの精度についてはほとんど問題ないと思います。
これでNDocレベルのカスタマイズが出来るようになれば十分NDocに取って代わることが出来ると思います。

出力までの手順は面倒であるが、正式版ではもっと楽になると期待しています。

2 Comments

NEWSさんコメントありがとうございます。
hotdocumentですね。
かなり前に、Cで開発していた頃に使っていたことがあります。
Excelでコーリングシーケンスなどを出力してドキュメント作成を楽させてもらった覚えがあります。

hotdocumentがsandcastleの代用ではなくむしろ逆のような気もしますが。

最初調べていた時に、まともにMSDNライブラリライクに出力できたのがNDocだけだった気がします。

コメントする

(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)

トラックバックURL

このエントリーのトラックバックURL:
http://www.cs-dotnet.com/cgi-bin/mt-tb.cgi/74

トラックバック

» [.NET]NDoc2は死亡? from Kazzzの「JとNの狭間で」
NDoc 2 is Officially Dead akirameiさんの日記からだが、これはショック大きい。 .NET2.0対応は日記で何度か言及して... 続きを読む

» NDoc 2.0は登場しない from 寝ても覚めても.NET(?)
NDoc 2.0はリリースされないようです。NDoc 2 is Officially Deadhttp://www.charliedigital.com/... 続きを読む

» Sandcastleその後 from OPC Diary
NDoc2の開発終了に関しては、最近更新もなかったため皆さん想定内だったのか、そ... 続きを読む

» .NET Fx 2.0 での XMLコメント ドキュメント化ツール from おぎわら@.NET道場 Blog(わんくま編)
.NET Fx 2.0 での XMLコメント ドキュメント化ツール 続きを読む

» re: Sandcastle - August 2006 Community Technology Preview (CTP) from 中の技術日誌ブログ
re: Sandcastle - August 2006 Community Technology Preview (CTP) 続きを読む

» Sandcastle August CTP from 寝ても覚めても.NET(?)
Microsoft純正のXMLコメント -> HTML変換ツール「Sandcastle」の最新CTPがでた模様。情報元は中の技術日誌よりSandca... 続きを読む

» Sandcastle - September 2006 Community Technology Preview (CTP) from 中の技術日誌ブログ
Sandcastle - September 2006 Community Technology Preview (CTP) 続きを読む

» .NET from PukiWiki/TrackBack 0.2
FrontPage ./namespaceとusing 入門 .NET BOOK Preview .NET Framework 3.0 .... 続きを読む