All-In-One-NAnt-0.85-rc4

とりあえず、以下の全てが入ってるAll-In-Oneを作成した。日本語MSDNに連結するNDocは.NET Framework 1.0、1.1、2.0用にそれぞれビルドしたので.NET FrameworkのバージョンにあわせてNAntのndocタスクと連動する。

  • NAnt-0.85-rc4
  • NAntContrib-0.85-rc4
  • NCoverExplorer.Extras

インストールはC:\nant-0.85-rc4等に展開して、binにパスを通すだけ。

ndocタスクを使用する場合は、VSHIKかHTML Help Workshopのいずれかが必要です。VSHIKはVS2003がないとインストール不可のようですので、その場合はHTML Help Workshopをインストールしてください。ダウンロードサイトは以下です。

.NET Framework 2.0用のSDKヘルプはVS2005(Express Edition以外)がインストールされたマシンでないとリンク切れが発生します(VS2005のヘルプ、Express Editionのヘルプ、.NET Framework SDKのヘルプはそれぞれ開始アドレスが異なるため)。

#ビルドサーバー上でビルドを実行する場合には、別途.NET Framework SDK及び各種レポーティングツール、NUnitをインストールする必要があるでしょう。

ダウンロード

NAnt 0.85-rc4ことはじめ(>_<)

NAntのndocタスクで生成されるSDKヘルプがMSDNライブラリの日本語版にきちんとリンクされるようにNDoc-1.3.1を改造した。

昨晩から悪戦苦闘してやっと.NET Framework 1.0, 1.1, 2.0 のそれぞれでNDocがビルド(NAnt 0.85-rc4で)できるようになった。

NAnt 0.85-rc4のndocタスクではNDoc-1.3.1が使用されているが、NDoc-1.3.1は.NET Framework 2.0に対応していない。

そこで参考にしたのが、ここ

via:NDocを.NET2.0日本語環境で使う方法 1

でも、参考サイトにあるソース(ndoc-src-1.3.1-v16.zip)はVS2005のソリューションで、ジェネリクスを使ってある箇所があるので、.NET Framework 1.0, 1.1用にはビルドできない。さらにNAntのndocタスクで使用しているNDoc.Core内のクラスのインターフェースが変更されてしまっている。

つまりこのままじゃNAnt 0.85-rc4に突っ込めないってことだ。日本語の文字化けの問題とかもあったし。

で、本家からNDoc-1.3.1のソースを落としてきて、参考サイトのソースを参考にしながら、すべての.NET Frameworkのバージョンでビルドできるように改造。日本語の文字化けの問題とかも修正した。

ただ、参考サイトのソースでは、.NET Framework 2.0のSDKにリンクさせようとするとものすごく遅い。実は内部でブラウザコントロールを持ってて、生成したHTMLファイル内のリンクを片っ端からコントロールに表示させて、リンク切れならURLを修正していくような設計になってるorz. かろうじてFlyweightっぽくはなってるけどあんまり効果ないみたい。

例えばAssemblyクラスなら、.NET Framework 2.0のSDKのURLはこんな感じ。

ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.JA/cpref10/html/T_System_Reflection_Assembly.htm

この「cpref10」のところは、大抵が「cpref2」なんだけど、Assemblyクラスのように異なるやつもあるので、デフォルトを「cpref2」にしておいて「cpref3」から「cpref19」までループさせてリンク切れじゃないやつを探すとうわけ。

あーーー、遅い。NAnt 0.85-rc4SDKを作成するのに8分強。

でもndocタスクはナイトリービルドでしか走らせないから今はこれで我慢する。NDoc2.0も死亡したことだし、今後はSandcastleに期待しよう。

よし、先へ進もう。

#ちょっと役に立ったのでメモ

MS HELP 2.x Info