これは、WIX 拡張機能を使用して実現できます。以下の太字/斜体のテキストは、EXE の正確な場所を見つける場合を処理します :)
ステップ 1: 拡張ライブラリをプロジェクトに追加する
コマンドラインで WiX を使用している場合は、以下をキャンドルとライトのコマンドラインに追加する必要があります。
-ext WixUIExtension -ext WixUtilExtension
Visual Studio を使用している場合は、[参照の追加] ダイアログを使用して拡張機能を追加できます。
Right click on your project in Solution Explorer and select Add Reference...
Select the WixUIExtension.dll assembly from the list and click Add
Select the WixUtilExtension.dll assembly from the list and click Add
Close the Add Reference dialog
ステップ 2: UI をインストーラーに追加する
WiX Minimal UI シーケンスには、オプションのチェックボックスを備えた完成したダイアログを含むダイアログの基本セットが含まれています。プロジェクトにシーケンスを含めるには、要素内の任意の場所に次のスニペットを追加します<Product>
。
<UI>
<UIRef Id="WixUI_Minimal" />
</UI>
インストーラーの最後の画面にチェックボックスを表示するには、<Product>
要素内の任意の場所に次のスニペットを含めます。
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch My Application Name" />
WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT プロパティは、標準の UI シーケンスによって提供されます。設定すると、チェックボックスが表示され、指定された値がチェックボックス ラベルとして使用されます。
ステップ 3: カスタム アクションを含める
<CustomAction>
カスタム アクションは、要素を使用して WiX プロジェクトに含まれます。アプリケーションの実行は、WixShellExecTarget カスタム アクションで実現されます。カスタム アクションについて Windows インストーラーに通知し、そのプロパティを設定するには、プロジェクトの<Product>
要素内の任意の場所に次を含めます。
<Property Id="WixShellExecTarget" Value="[#myapplication.exe]" />
<CustomAction Id="LaunchApplication" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" />
Property 要素は、WixShellExecTarget をインストールされたアプリケーションの場所に設定します。WixShellExecTarget は、WixShellExec カスタム アクションが期待するプロパティ Id で、実行するファイルの場所に設定されます。***
Value プロパティは特殊な # 文字を使用して、ID myapplication.exe を持つファイルの完全なインストール パスを検索するように WiX に指示します。
CustomAction 要素には、インストーラーのアクションが含まれます。これには一意の ID が与えられ、BinaryKey および DllEntry プロパティは、カスタム アクションのアセンブリとエントリ ポイントを示します。Impersonate プロパティは、インストール ユーザーとしてカスタム アクションを実行するように Windows インストーラーに指示します。
ステップ 4: カスタム アクションをトリガーする
手順 3 のようにカスタム アクションを含めるだけでは、実行するのに十分ではありません。また、カスタム アクションをトリガーするタイミングを Windows インストーラーに通知する必要があります。これは、要素を使用して<Publish>
、ユーザーが UI ダイアログの最終ページで [Finished] ボタンをクリックしたときに実行されるアクションに要素を追加することによって行われます。Publish 要素は、手順 2 の要素内に含める必要があり<UI>
、次のようになります。
<Publish Dialog="ExitDialog"
Control="Finish"
Event="DoAction"
Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
Dialog プロパティは、カスタム アクションがアタッチされるダイアログ (この場合は ExitDialog) を指定します。Control プロパティは、ダイアログの [完了] ボタンがカスタム アクションをトリガーすることを指定します。Event プロパティは、ボタンがクリックされたときにカスタム アクションを実行する必要があることを示し、Value プロパティは、ステップ 3 に含まれていたカスタム アクションを指定します。要素の条件により、ステップ 2 のチェックボックスがオンになっていない限り、アクションは実行されません。アプリケーションが実際にインストールされた (削除または修復されたのではなく)。
詳細については、このリンクを確認してください。インストール後にexeを実行する方法。同じ答えを探している他の人のために、ここにコピーしました。