1

インストール後すぐにアプリを起動したい。私のコードは次のとおりです

   <Variable Name="LaunchTarget" Value="C:\ProgramFiles\MySetup\MyExe.exe" />

ユーザーがインストール中にインストール ディレクトリを変更すると、このコードは機能しません。

私の考えは、インストール中にディレクトリをレジストリキーに保持し(のようにC:\ProgramFile\UserGiverName)、ブートストラッププログラムでこの値を読み取り、このレジストリキー値でexe名を追加してから、その値をLaunchTarget変数に割り当てることです..

これに関する良い提案を歓迎します

4

1 に答える 1

1

カスタム Bootstrapper アプリケーションを作成すると、説明したことを実行できます。ただし、チェーンが適用されたにレジストリを読み取る wixstdba には何も組み込まれていません。LaunchTarget の概念が組み込まれているため、wixstdba を使用していると思います。

この問題を解決するには、代わりに、インストール フォルダーを格納する変数を用意し (おそらくそれを と呼びますInstallFolder)、要素を介して wixstdba から .msi ファイルにその値を渡すことをお勧めしますMsiProperty。何かのようなもの:

<!-- Default InstallFolder to something -->
<Variable Name='InstallFolder' Value='[ProgramFilesFolder]MySetup' />

<!-- Pass InstallFolder to the MSI -->
<MsiPackage ...>
   <MsiProperty Name='INSTALLFOLDER' Value='[InstallFolder]' />
</MsiPackage>

次に、LaunchTarget を次のように設定できます。

<Variable Name='LaunchTarget' Value='[InstallFolder]\MyExe.exe' />
于 2013-03-21T14:11:44.533 に答える