4

Wix v3.8 で Windows サービスをインストールすることになっているインストーラーに取り組んでいます。問題は、サービスを停止するためだけにサービスをアンインストールせずにメジャー アップグレードを行う必要があることです。

サービスexeファイルを保持するコンポーネント内で ServiceInstall と ServiceControl を使用しています。アップグレード時にサービスがアンインストールされないように (REMOVE="ALL" AND NOT UPGRADINGPRODUCTCODE のような条件を使用して) ServiceInstall の実行を条件付きにする方法はありますか (ファイルをアップグレードできるように停止しただけです)。

解決策の 1 つは、カスタム アクションを使用することですが、もっと良い方法があるのではないでしょうか?

ありがとう!

4

2 に答える 2

8

これらの要素を処理するアクションをオーバーライドする必要があります。以下は、MSI パッケージ内のすべてのサービスに適用される場合に問題がない限り機能する可能性があります (サービスが 1 つしかない場合は問題ありません)。

<InstallExecuteSequence>
   <DeleteServices>NOT UPGRADINGPRODUCTCODE</DeleteServices>
</InstallExecuteSequence>

DeleteServices は既にコンポーネントの状態を考慮に入れているため、削除の条件を設定する必要はありません。

于 2013-04-13T03:45:09.297 に答える