misc.log

日常茶飯事とお仕事と

Visual Studio.NET 2003のアセンブリに関するヘルプを開発環境から見られるようにしたい

社内開発者向けのコンポーネントに関するヘルプを作成している。
VBCommenterを使ってコメントからXMLファイルを作成し、NDocでヘルプファイル(拡張子が.CHMのファイル)を作るところまでは良い。その先、ヘルプ情報を、開発者が開発環境から、たとえばF1キーで参照できるようにしたい。どうすればよいのか。

まず、NDocの出力オプションに「VS 2003」というのがある。出力書式をこれに切り替えると、「VSHIK2003をインストールせよ」との指示が。なんだこりゃ?ということで調べると、以下のサイトに行き着いた(MS HELP 2.x Info)。
http://www.helpware.net/mshelp2/h20.htm
関連して、こんなのも見つかった(GotDotNetJapan掲示板)。
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=34705
んでもってここに行き着く(MSDN:Creating a Help Collection Using the Help Integration Wizard Beta)。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/integration_wizard.asp
しかし必要なのはこれではないようだ。必要なのはVSHIK。VSHIK 2003というのは、Visual Studio .NET Help Integration Kit 2003の略なのな。こちらをダウンロードする。
http://www.microsoft.com/downloads/details.aspx?familyid=ce1b26dc-d6af-42a1-a9a4-88c4eb456d87&displaylang=en
これをインストールし、NDocを立ち上げ直してVS 2003形式を選択、コンパイルを指定すると、エラーは出ずに動き始めた。設定は、特に変更せず、せいぜいファイル名とヘルプ名、CopyRightの文面を変えたくらい。コンパイルが完了したので、Viewを選択すると以下のメッセージが表示された。

In order to view an Html Help 2 file it must be registerd. Set RegisterTitleAsCollection to true, rebuild the project, and try again.

表示させるには登録が必要...と。RegisterTitleAsCollectionをTrueにすればOKらしい。うーん。登録というのは自分のPCに対して登録するのだろうか。となると、これを配布してもそのままでは利用してもらえないのだろうか。このあたり、ヘルプの仕組みをよく理解していないので何ともいえない。とりあえずやり直してみよう。
NDocの設定を見てみる。問題の設定項目は、Html Help 2 Deploymentというカテゴリのところにあった。説明文を見てみると...

RegisterTitleAsCollection
If true the HxS title will be registerd as a collection on this machine (uses HtmlHelpName as the namespace name). Good fo testing. (ignored if RegisterTitleWithNamespace is true)

やはり「このマシン」に登録される...と。テスト用に最適ということは、やはり各開発者にアセンブリを配布するときに、登録してもらなわないといけないのか。まずはやってみよう。
コンパイル終了。Viewしてみる。MSDNライブラリをスタートメニューから呼び出したときと同じウィンドウが開く。左に目次や検索入力欄、右上にメインの文面、右下は検索結果という見たことのある形式。ただ、なぜか右上のメイン部分に、IEに登録しているホームページの内容が表示されているのはどこかで設定を変えられるのだろうか...

というのはおいておいて、先に進めよう。

ヘルプファイルは作れたが、これをVisualStudioの開発環境に統合する必要がある。これには、登録処理を行う必要があり、どうやらその方法には

  • インストーラを作る
  • 専用の登録ツール(シェアウェアなどで出回っている)を利用する

の二通りがありそうだ。後者は、各PCで処理を実行する必要があり、あまり現実的では無いように思う。試しては居ないが。前者でいきたい。そうなると、先に挙げた「Help Integration Wizard Beta」が活きてくる。これをインストールすると、Visual Studioの新規プロジェクトテンプレートのところ、その他のプロジェクトのところにヘルプインテグレーションプロジェクトという項目が現れる。これを選んで、NDocで作成したVS 2003用のファイルを選んで...でうまくいくと思ったのだが、うまくいかない。途中で、マージモジュールを作るか、単体のインストーラを作るかを聞いてくる。できれば、ヘルプだけの単体インストーラを作りたいのだが...これが、依存関係がなんとかっていう警告がたくさん出てしまい、よくわからない。マージモジュールを選ぶと、警告も出ずにマージモジュールを作ることが出来た。
これについては実際にインストールしたり、インストーラを作って試す必要があるので、一旦作業を止めて、VMWareVisual Studio.NETの環境を作ることにする。