COM Library を登録するために Visual Studio が行うことについて尋ねたところ、VS が COM 登録のために 2 つのことを行っていることが明らかになりました。
- COM ライブラリを登録しました
- タイプ ライブラリを作成して登録します
Visual Studio は regasm.exe を使用してこの登録を行うようです。最初の部分 (直接 COM 登録) では、tallow
or heat
(WiX 2.0 または WiX 3.0) を使用すると、すべての基本的な COM 登録情報が正しく取得されるようです。
ただし、tallow/heat が実行していないように見えるのは、タイプ ライブラリのインストールのセットアップです。WiX インストーラーと regasm.exe を使用してこれを行うカスタム アクションを作成することは可能ですが、Microsoft インストーラー ベースのインストーラーに関しては、カスタム アクションを呼び出すことはベスト プラクティスではありません。
さらに調査すると、msi にはインストール時にタイプ ライブラリを生成する機能があるようです。実際、WiX はそれを直接サポートしているようです! file 要素では、 Typelib要素を追加できます。実際、wix の記事には、TypeLib 要素をInterface要素で埋める例があります。
Interface 要素には少なくとも 2 つの必須属性があるようです。
- ID
- 名前
Larry Osterman は、TypeLib 一般に登録する必要があるインターフェイスの他の部分について語っています。このインターフェイス エントリは、個々の部分を処理しているようです。Larry は、ProxyStubClassId32 を "{00020424-0000-0000-C000-000000000046}" として指定する必要があると言っているので、簡単に追加できます。
そこからどこへ行けばいいのか、さまざまなインターフェイス要素に何を記入すればよいのか、私は困惑しています。TypeLib 要素を wix ファイルに追加したところ、正常にコンパイルされました。ただし、インターフェイス要素を設定する方法については少しわかりません。TypeLib 要素を適切に入力するにはどうすればよいですか?また、それを取得するためにどのアプリやツールを使用できますか?
以下のwcoenenによる回答は有望に見えます...試してみます。
更新:私の最終的な解決策を回答として以下に投稿しました。