0

DLL(カスタムアクション)から関数を呼び出して、プログラムが既にインストールされている場所を検索し、そこにmsiをインストールできますか?

4

1 に答える 1

-1

この場合、カスタムアクションは必要ありません。WiXがすぐに提供するDirectorySearch / FileSearch要素を使用します。さらに、そのプログラムがシステムレジストリに痕跡を残す場合は、RegistrySearch要素が役立ちます。

更新:以下のコメントから理解できる限り、メインプログラムがインストールされたパスを検出するための既成の機能があり、この機能を利用してそこに追加のアドオンをインストールしたいと考えています。

DLLから関数を呼び出す即時カスタムアクション(CA)を作成し、AppSearchとLaunchConditionsの間のどこかにスケジュールする必要があります。このカスタムアクションは、結果をMSIプロパティ(INSTALLLOCATIONなど)に保存する必要があります。つまり、パスを返す関数がある場合は、その値をINSTALLLOCATIONプロパティに保存する別の関数(実際のCA)にラップすることをお勧めします。

次に、次のようにディレクトリ構造でこのプロパティを使用できます。

  <Directory Id="TARGETDIR" Name="SourceDir">
     <Directory Id="INSTALLLOCATION" Name="my app">
     ...
     </Directory>
  </Directory>

注:このアドバイスに従うには、WindowsインストーラーとWiXに関する基本的な知識が必要です。そのため、基本については、 MSDNWiXのチュートリアルに取り組むことを強くお勧めします。

于 2012-07-20T11:30:30.760 に答える