0

インストーラーがあります (Advanced Installer で作成)。対話する必要があるアプリケーションがありますが、そのインストールの MSIHANDLE を見つける方法がわかりません。Microsoft リファレンスを調べましたが、私の問題に役立つものは見つかりませんでした。

何か助けてください。

4

1 に答える 1

1

MSI ハンドルは、アウト プロセス コードでは使用できません。アプリケーションがやり取りできるある種の RPC メカニズムをホストできるカスタム アクションを作成する必要があります。これは基本的に、Windows Installer XML (Wix) の Deployment Tools Foundation (DTF) の仕組みです。これにより、C++ ホストでラップされる C# を使用してカスタム アクションを作成できます。C++ ホストは RunDLL32 を使用してマネージ コードをアウト プロセスで実行し (CLR バージョンで msiexec プロセスをタトゥーしないように)、2 つの間に IPC トンネルが作成されます。

C# には、C++ コードが MSI API を呼び出して結果を返す IPC トンネルを介して呼び出しをマーシャリングする相互運用ライブラリがあります。

于 2013-06-29T17:54:45.310 に答える