WIX でビルドされているインストーラーがあります。インストールには 2 つの異なるパスがあり、そのうちの 1 つにサービスのインストールが含まれます。
このサービスは Topshelf で作成されているため、カスタム アクションを使用してインストールする必要がありました。どうすればよいか分からないのは、特定のインストール タイプまたはレベルでのみカスタム アクションを実行することです。
<CustomAction Id="ConfigureInstallSyncClient" Property="InstallSyncClient" Value='"[InstallDirectory]Sync.Client.WindowsService.exe" install' Execute="immediate"/>
<CustomAction Id="InstallSyncClient" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="check" Impersonate="no"/>
<InstallExecuteSequence>
<Custom Action="ConfigureInstallSyncClient" Before="StartServices">NOT (REMOVE ~= "ALL")</Custom>
<Custom Action="InstallSyncClient" After="ConfigureInstallSyncClient">NOT (REMOVE ~= "ALL")</Custom>
</InstallExecuteSequence>
私たちがやっていることです。サービスをインストールしたい場合は機能しますが、サービスをインストールしていない場合は失敗します