状況
Windows フォームアプリケーションと Windows サービスで構成されたアプリケーションがあります。これらのコンポーネントをインストールするために、私は WiX を使用しています。今までは問題なく動作していましたが、Windows XP にインストールしようとすると問題が発生します。
インストールを終了する前にインストーラーがサービスを開始しようとすると、サービスが機能しません。「ユーザーには開始する権限がありません」というメッセージが表示されます。
ServiceControl
.wxs ファイルからブロックを削除し、再度ビルドして、PC のインストールと再起動を試みました (これは Windows XP の場合です)。これで、私のサービスは正常に開始されます。
問題
Windows が XP で Service Pack が 3 未満の場合のみ、<ServiceControl>
からの再起動と無効化について質問する必要があります。<Component>
だから私はこれを試しました:
<Product>
<!-- (...) -->
<InstallExecuteSequence>
<ScheduleReboot After="InstallFinalize">
<![CDATA[NOT (VersionNT <= 501 AND ServicePackLevel <> 3)]]>
</ScheduleReboot>
</InstallExecuteSequence>
<!-- (...) -->
</Product>
<!-- (...) -->
<Fragment>
<ComponentGroup>
<Component>
<File Id="ServExe" Name="Serv.exe" DiskId="1"
Source="Serv.exe" KeyPath="yes"/>
<ServiceInstall
Id="ServiceInstaller"
Type="ownProcess"
Name="Serv"
DisplayName="Serv"
Description="Serv"
Start="auto"
Account="[SERVICEACCOUNT]"
Password="[SERVICEPASSWORD]"
ErrorControl="normal" />
<ServiceControl Id="StartService" Start="install" Stop="both"
Remove="uninstall" Name="Serv" Wait="yes" />
</Component>
<!-- (...) -->
</ComponentGroup>
</Fragment>
しかし、Windows(XP、XP SP 2、XP SP 3、Windows 7を試しました)に関係なく、常に「再起動が必要」ダイアログが表示されます。また、インストール時の条件を に入れる方法がわかりません<ServiceControl>
。
この問題を解決するにはどうすればよいですか?