2

皆さん、こんにちは。

プログラムの WiX インストール スクリプトに取り組んでいます。C# dll を GAC にインストールして登録する必要があります。そのため、ファイルを でマークしAssembly=".net"て、WiX GAC が代わりにそれを処理するようにします。次に、遅延カスタム アクションを実行するように設定します。これは、GAC からアセンブリをロードしてから登録するようInstallFinalizeに呼び出します。Assembly.LoadRegistrationServices.RegisterAssembly

1 つの問題を除いて、完璧である必要があります。どうやら dll は実際にはコミット フェーズまで GAC に書き込まれないため、カスタム アクションを実行するとAssembly.Load、ファイルが見つからないためにスローされます。それはどこにある?コミットフェーズの前にアクセスできますか? または、これを完全に行うためのより良い方法はありますか? そんな些細なことに思えますが…

の使用を提案しないでくださいheat.exe。本当に避けたいです。私のプログラムには、ComRegisterFunction可能であればユーザーのコンピューターで実行したい があります。

4

1 に答える 1

0

あなたが説明したような問題が原因で、一般的に自己登録はインストール中に嫌われます。代わりにレジストリ エントリを WiX スクリプトに追加する必要があります。

また、アセンブリを GAC だけにインストールしているわけではありませんね。COM 登録を非 GAC の場所にポイントします。

于 2010-12-05T07:31:15.703 に答える