web-dev-qa-db-ja.com

WiXを使用してWindowsサービスをインストールおよび開始する方法

Wixで以下のコードを使用しようとしました。

しかし、インストール時に、インストーラーがステータスで約3分間フリーズしていました。サービスを開始すると、「サービスジョブサービスを開始できませんでした。システムサービスを開始するための十分な権限があることを確認してください」というメッセージが表示されました。コードに誤りはありますか?また、インストール中にWindowsシステムのユーザー名とパスワードを入力して「特権」を取得するようユーザーに要求できますか?

どうもありがとう!

    <File Id='JobServiceEXE' Name='JobService.exe' DiskId='1'
        Source='JobService.exe' Vital='yes' KeyPath='yes'/>         
    <ServiceInstall Id="ServiceInstaller" Type="ownProcess" Vital="yes"
        Name="JobService" DisplayName="123 Co. JobService"
        Description="Monitoring and management Jobs" Start="auto"
        Account="LocalSystem" ErrorControl="ignore" Interactive="no" />
    <ServiceControl Id="StartService"  Stop="both" Remove="uninstall"
        Name="JobService" Wait="yes" />
</Component>
57
Ray

次のコードは私のために機能します...ユーザー名/パスワードを入力する必要はありません:)

    <File Id='JobServiceEXE' Name='JobService.exe' DiskId='1' Source='JobService.exe'  KeyPath='yes'/>         
    <ServiceInstall
      Id="ServiceInstaller"
      Type="ownProcess"
      Name="JobService"
      DisplayName="123 Co. JobService"
      Description="Monitoring and management Jobs"
      Start="auto"
      Account="[SERVICEACCOUNT]"
      Password="[SERVICEPASSWORD]"
      ErrorControl="normal"
      />
      <ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="JobService" Wait="yes" />
    </Component>
72
saschabeaumont

このページのソリューションはサービスを正しくインストールしますが、ServiceControl要素はサービスを開始しません。

Wixインストールサービスと手動インストールサービス(「JobService.exe/install」)を比較すると、「実行可能ファイルへのパス」フィールドに開始スイッチがありませんでした。 ServiceInstallのarguments属性を使用してwixでこれを修正しました。

<File Id='JobServiceEXE' Name='JobService.exe' DiskId='1' Source='JobService.exe'  KeyPath='yes'/>         
  <ServiceInstall
  Id="ServiceInstaller"
  Type="ownProcess"
  Name="JobService"
  DisplayName="123 Co. JobService"
  Description="Monitoring and management Jobs"
  Start="auto"
  Account="[SERVICEACCOUNT]"
  Password="[SERVICEPASSWORD]"
  ErrorControl="normal"
  Arguments=" /start JobService"
  />
  <ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="JobService" Wait="yes" />
</Component>

長い間、これが私の最初の投稿です。誰かの助けになることを願っています。

15
Daniel de Zwaan

WiXバージョン3.xのユーザー向けの更新。次のコードは、ローカルアカウントでサービスをインストールして開始します。 ServiceInstallタグのArgumentsプロパティに注意してください。

<File Source="$(var.MyService.TargetPath)" />
<ServiceInstall Id="ServiceInstaller" Name="MyService" Type="ownProcess" Vital="yes" DisplayName="My Service" Description="My Service Description" Start="auto" Account="LocalSystem" ErrorControl="normal" Arguments=" /start MyService" Interactive="no" />
<ServiceControl Id="StartService" Name="MyService" Stop="both" Start="install" Remove="uninstall" Wait="yes" />
2
RDRick

私にとっては、少なくとも1回は役立ちました。インストールとアンインストールの両方のサービスを削除しました

<ServiceControl Remove="both" />

私はこれがRegeditから何かを削除したと思います

0
Mihkel Tiganik