Web プロジェクト、C# ライブラリ プロジェクト、および Visual Studio 2005 の Web セットアップ プロジェクトがあります。Web プロジェクトでは、C# ライブラリを GAC に登録する必要があります。これは簡単です。GAC フォルダーをセットアップ プロジェクトに追加し、そこに C# ライブラリのプライマリ出力をドロップするだけです。C# ライブラリも、COM 相互運用のために登録する必要があります。GAC フォルダのプライマリ出力をクリックして選択し、Register プロパティを vsdrpCOM に変更します。セットアップ プロジェクトをビルドして実行しましたが、DLL が COM に登録されません。
これは私にとって本当に驚きではありません。COM の DLL を適切に登録するために、RegistrationServices.RegisterAssembly を使用するカスタム アクションを持つインストーラー クラスを常に追加する必要がありました。そのため、私は何年も受け入れてきたこの回避策を自分の状況に適用します。ここで、セットアップ プロジェクトの GAC フォルダー内のプライマリ出力に割り当てられたカスタム アクションが、セットアップ プロジェクトのビルドを妨げていることがわかりました。
私はいつも、.NET と COM をセットアップ プロジェクトと展開プロジェクトでうまく機能させるために何かをハッキングしているように感じていました。私の問題を解決する適切な方法は何ですか?