0

私の WiX XML ファイルは、OLOLO_SERVICE という名前の Windows サービスを含むアプリをインストールします (たとえば)。アプリのインストール/再インストール時にこのサービスを停止したい。

ExeCommand='sc stop OLOLO_SERVICE' で CustomAction を使用します。

<CustomAction Id='EnsureThatServiceIsStopped' Directory='INSTALLLOCATION' 
Impersonate="no" Execute="immediate" ExeCommand="sc 
stop OLOLO_SERVICE" Return="ignore" />

<InstallExecuteSequence> タグ内はアクションです

<Custom Action='EnsureThatServiceIsStopped' Before='InstallValidate' />

しかし、これは機能しません。アンインストーラーは、「アンインストールを続行するには、実行可能ファイルの追跡を停止する必要があります」というウィンドウを表示します (ロシア語の Windows 7 ではロシア語で書かれているため、100% 正しくない可能性があります)。

考えられる理由としては、

  • スクリプトは管理者権限が取得される前に実行されます (管理者権限が必要なため、サービスの停止は失敗します)
  • スクリプトは検証後に実行されます (インストールされた実行可能ファイルをチェックするときに検証が失敗します)

助けてください。バッチ「sc stop OLOLO_SERVICE」を使用してサービスを停止したいのですが。

PS。質問を単純化することにしました。WiX で実行中のアプリケーションをチェックする前に、管理者権限で「sc stop OLOLO_SERVICE」を実行するようにします。

4

1 に答える 1

2

これをバッチ ファイルで行う必要はありません。ServiceControl要素を使用できます。

<ServiceControl Id="ServiceControl_OloService" 
                Name="OLOLO_SERVICE"
                Stop="both"
                Remove="uninstall"
                Wait="yes" />
于 2012-09-27T15:53:02.893 に答える