misc.log

日常茶飯事とお仕事と

自作ライブラリを「参照の追加」ダイアログに表示させる

自作ライブラリに厳密名をつけ、GACに登録した。てっきり、それで「参照の追加」の.NETのタブに表示されるのだとおもっていたのだが、違ったようだ。ここに表示するかどうかはGACは関係無く、下記URLによるとレジストリ登録で決まるらしい。
http://support.microsoft.com/default.aspx?scid=kb;ja;306149
ところが、このKBはVS.2002に関するものとして書いてある。実際、上記URLに出てくるレジストリエントリを探したが、存在しない(すでにGrapeCityの製品などは参照の追加、に表示されているので、この設定が存在するとおもったのだが...)。2003はすこし違うのだろうか。
...
レジストリに「.NETFramework」で検索をかけたら、以下の場所にそれらしいものが。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\AssemblyFolders

ここだろうか?現状、ODP.NETだけが記載されている。
おっと、こちらにも

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.1\AssemblyFolders

こちらには、InputManやEl Tabelleなどもある。こちらがメインか?よくわからない。とりあえず、ライブラリのインストーラに、上記の場所にキーを作るような仕掛けを入れてみよう。
...
できた。Installerプロジェクトのレジストリのところに、上記キーを作成。その下にアセンブリ名(拡張子を除いた部分)のキーを作り、文字列型エントリ(名称は「(既定)」)に「[ProgramFilesFolder][Manufacturer]\[ProductName]」という文字列を入れた*1。すると、見事にレジストリに項目が追加され、Visual Studioの「参照の追加」ダイアログにも選択肢が出た。
気になるのは、上記フォルダに複数のアセンブリが配置される場合、参照追加ダイアログには、そこにあるアセンブリがすべて表示されるという点。

*1:インストール先フォルダを表す文字列。