私はWiXを使い慣れていませんが、以前はInstallshieldとWindowsインストーラを使っていました。WiX:アンインストールでWindowsサービスが停止または削除されない
私は、Windowsサービスをセットアップするかなり簡単なインストーラだと思います。それは "NT AUTHORITY \ NETWORK SERVICE"の下に設定されます。
インストールはうまくいきますが、アンインストール中に「このセットアップではシステムが動作しているときに更新できないファイルやサービスをアップデートする必要があります」というメッセージが表示されます。セットアップ。"。 [OK]をクリックすると、サービスを除いてすべてがアンインストールされます(再起動後も)。それはまだ開始されており、サービスに関連するexeも残っています。
サービスを手動で停止して、sc.exeコマンドで問題なくサービスを削除できます。
また、アンインストールを実行する前にサービスを手動で停止しても、上記のプロンプトが表示されませんが、結果は同じです。サービスは残されており、ファイルもそのまま残っています。ここで
は私のウィックスの一部です:
<Component Id='cmpService' Guid='{542f970e-ca39-4501-aae4-9e03eaac9a25}' >
<File Id='ServiceExeFile' Name='nls.service.agent.exe'
ReadOnly='no' Compressed='yes' KeyPath='yes' Vital='yes' Hidden='no' System='no'
Checksum='no' />
<ServiceInstall Id='MyServiceInstall' DisplayName='RaMP Data Collector' Name='rampDataCollector'
ErrorControl='normal' Start='auto' Type='ownProcess' Vital='yes'
Account='NT AUTHORITY\NETWORK SERVICE' />
<ServiceControl Id='MyServiceControl' Name='rampDataCollector'
Start='install' Stop='uninstall' Remove='uninstall' Wait='yes' />
</Component>
私は
- アカウント= 'NT AUTHORITY \ NETWORK SERVICE' を離陸し、すべての私のGUIDを変更する
- 同じ結果を得たを試してみましたちょうど確かめて、同じ結果を得ました。
- 両方のシナリオ(アンインストール前に実行中のサービスとアンインストール前に停止したサービス)の詳細なログを見てください。しかし、私が解読できることは興味深いものは見当たりませんでした。
ここでは、アンインストールを実行してからサービスが手動で最初に停止されたときのmsiログの一部です。私は、サービスコンポーネントとMSIアクションの周りに部品を貼り付けました。
MSI (s) (A4:58) [10:44:11:080]: Component: cmpService; Installed: Local; Request: Absent; Action: Null
MSI (s) (A4:58) [10:44:11:080]: Component: cmpFolderPermissions; Installed: Local; Request: Absent; Action: Absent
MSI (s) (A4:58) [10:44:11:080]: Component: cmpApplicationShortcut; Installed: Local; Request: Absent; Action: Absent
と
MSI (s) (A4:58) [10:44:11:876]: Doing action: StopServices
Action ended 10:44:11: SchedSecureObjectsRollback. Return value 1.
Action start 10:44:11: StopServices.
MSI (s) (A4:58) [10:44:11:878]: Doing action: DeleteServices
Action ended 10:44:11: StopServices. Return value 1.
Action start 10:44:11: DeleteServices.
MSI (s) (A4:58) [10:44:11:879]: Doing action: RemoveRegistryValues
Action ended 10:44:11: DeleteServices. Return value 1.
任意の助けいただければ幸いです。
私は最後の手段として、カスタムコマンドを実行して、scコマンドを使用してアンインストール時にサービスを停止/削除することができたと思います。
さらにテストが行われます。私はそれがexeと何か「奇妙な」ものかもしれないと思う。私は同じインストールを簡単なテストexeでサービスをセットアップしている場合、それはうまくインストールし、アンインストールします。 私はexeについて何が奇妙であるかわからない。 idを書いた開発者と話をしなければならない。 – Ambro