VS 2008 セットアップおよび展開プロジェクトを使用して、管理対象/管理対象外の混合アプリケーションを展開しています。組み込みの登録プロパティ (「vsdraCOM」は「Register」プロパティの列挙値) を使用して混合モード DLL を登録する際に問題がありました。回避策として、.NET カスタム インストール アセンブリを追加しました (クラスはSystem.Configuration.Install.Installer から派生します。) そのクラスが実行されており、多数のアセンブリの Dll(Un)RegisterServer エントリ ポイントの実行を含む、多数の操作がそのアセンブリ内のコードを介して正常にインストールおよびアンインストールされていることは確かです。 .
ただし、1 つの DLL が正常に登録されていません。これは、GAC にインストールするサードパーティ製の再頒布可能アセンブリに依存する唯一の DLL です。VS 2008 のセットアップおよび展開プロジェクトの組み込みサポートのおかげで、これらのアセンブリを GAC にインストールしましたが、それが機能していることはわかっています。インストーラーが GAC インストールを実行する前に、カスタム アクションが実行されていることを確認しました。
うわー。私の質問は、カスタム アクションを実行する前に、インストーラーに GAC インストールを強制的に実行させる方法はありますか? これを行うためにカスタム アクションの「条件」プロパティを使用する方法はありますか? そうでない場合、私の最良の代替手段は何ですか? DLL からレジストリ エントリを取得し、インストーラのレジストリ設定に追加します (将来誰かがクラスに新しい COM サーバーを追加する可能性があるため、これは望ましくありません)。.NET コードを使用してアセンブリを GAC に手動でインストールします (その方法はまだわかりません)。
ありがとう、
デイブ