0

私はWIXを使用しており、次のようにインストーラーの最後にインストールされたファイルを実行するためにカスタムアクションを正常に使用しました。

<CustomAction Id="LaunchAfterInstall" FileKey="foobar.exe" ExeCommand="parameters" Execute="immediate" Impersonate="yes" Return="asyncNoWait" />

<Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION"/>

<UIRef Id="WixUI_InstallDir" />
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch Foobar." />
<UI>
    <Publish Dialog="ExitDialog" Control="Finish" Order="1" Event="DoAction" Value="LaunchAfterInstall">WIXUI_EXITDIALOGOPTIONALCHECKBOX</Publish>
</UI>

これは、foobar.exeが同じwxsファイルのコンポーネントにある場合にうまく機能します。しかし、私が本当に望んでいるのは、マージモジュールによってインストールされたファイルを実行することです。どうすればよいですか?

これが問題を解決するのであれば、マージモジュールに変更を加えることができます。

4

2 に答える 2

0

問題を解決するためにアクションを変更しました。

<CustomAction Id="LaunchAfterInstall" Directory="INSTALLLOCATION" ExeCommand="[INSTALLLOCATION]\foobar.exe" Execute="immediate" Impersonate="yes" Return="asyncNoWait" />
于 2009-09-22T13:53:25.537 に答える
0

ビルドが完了した後(つまり、マージモジュールがマージされた後)にOrcaまたはMSIでマージモジュールを開き、File.Idを検索することもできます。次に、CustomActionでFile.Idを使用します。

理想的には、マージモジュールは独立していると想定されているため、MSIはマージモジュール内のコンテンツを参照するべきではありません。いつもそのようにうまくいくとは限らないことを感謝します。:)

于 2009-09-22T14:20:45.313 に答える