Windowsサービスをインストールし、サービスが使用するDLLを追加するMSIを作成しています。これらのDLLは、インストーラを使用して追加または削除できる機能です。WiX - インストールされた製品の変更後にサービスを再起動する
ユーザーがインストールした製品を変更した後(新しい機能を追加するなど)、Windowsサービスを再起動する必要があります。サービスを再起動するカスタムアクションを呼び出す以外に、WiX 3.5でこれを行うもっとエレガントな方法がありますか?
これは私がサービスを開始する方法です。
<ServiceControl Id="StartService" Name="MyService" Start="install" Stop="both" Remove="uninstall" Wait="yes" />
EDIT: ここでは完全なコンポーネントのコードです。 idsを無視してください。
<Component Id="MyService" Guid="GUID">
<File Id="MyService"
Source="$(var.BuildDestination)/$(var.NameSpacePrefix).MyService.exe"
KeyPath="yes"
>
</File>
<RemoveFile Id='AppConfigFile' On='uninstall' Name='MyService.exe.Config' />
<User xmlns="http://schemas.microsoft.com/wix/UtilExtension"
Id="ServiceAccount"
CreateUser="no"
FailIfExists="no"
RemoveOnUninstall="no"
UpdateIfExists="yes"
Disabled="no"
LogonAsService="yes"
Name="[ACCOUNT]"
Password="[PASSWORD]" />
<ServiceInstall
Id="MyService"
Type="ownProcess"
Vital="yes"
Name="MyService"
DisplayName="MyService"
Description="MyService"
Start="auto"
Account="[ACCOUNT]"
Password="[PASSWORD]"
ErrorControl="ignore"
Interactive="no">
</ServiceInstall>
<ServiceControl Id="StartService"
Name="MyService"
Start="install"
Stop="both"
Remove="both"
Wait="yes"
>
</ServiceControl>
残念ながら、それは私のためのトリックを行いません。元の投稿に完全なコンポーネントコードを追加しました。 – MrBob
Windowsのログ、アプリケーションのイベントビューアには何が表示されますか?ソースはMsiInstallerまたはMyServiceを停止していますか? –
'ErrorControl'を' 'normal ''や '' critical "'に変更するとどうなりますか?これはより多くの情報を提供するかもしれない。 –