2

WIX を使用して Windows サービスをインストールしようとしています。Windows サービスは正常にインストールされており、Service Manager 内を確認すると、サービスがインストールされており、以下に示すように開始しようとしていることがわかります。

ログサービス

3 ~ 4 分後に、「十分な権限が必要です」というエラーが表示されます。エラー メッセージの画像を参照してください。

セットアップインストール

Windows サービスのセットアップを手動で実行すると、起動時に問題なく正常にインストールされます。私が間違っていることは誰でも助けることができますか?

以下は私が使用しているコードです:

public ProjectInstaller()
        {this.ServiceProcessInstaller = new System.ServiceProcess.ServiceProcessInstaller();
            this.ServiceInstaller = new System.ServiceProcess.ServiceInstaller();
            // 
            // ServiceProcessInstaller
            // 
            this.ServiceProcessInstaller.Account = System.ServiceProcess.ServiceAccount.LocalService;
            this.ServiceProcessInstaller.Password = null;
            this.ServiceProcessInstaller.Username = null;
            // 
            // ServiceInstaller
            // 
            this.ServiceInstaller.ServiceName = "Service";
            this.ServiceInstaller.StartType = System.ServiceProcess.ServiceStartMode.Automatic;
        }

以下は私のWIXコードです:

<File Id='SetupService' Name='SetupService' DiskId='1' Source='setup.exe' KeyPath='yes'/>
 <ServiceInstall Id="ServiceInstaller"   Type="ownProcess" Name="SetupService" DisplayName="DataLogsetup" Description="Service" Start="auto" Account="[SERVICEACCOUNT]" Password="[SERVICEPASSWORD]" ErrorControl="normal"/>
 <ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="SetupService" Wait="yes" />

アカウントに [LocalService] を渡そうとしましたが、それでも同じエラーが発生します。とにかく、WIX を使用してサービスをインストールできますか?

4

1 に答える 1

2

ここで失敗につながる可能性のあるいくつかの理由があります。

  1. あなたは電話していません

    Installers.Add(this.ServiceInstaller); Installers.Add(this.ServiceProcessInstaller);

メソッドの最後に。The Installers.Add(..)行は実際にサービスをサービス テーブルに追加する必要があります。このページの最後にある例を参照してください

  1. 私の知る限り、WIX ではインストーラー クラスはサポートされていません。代わりにカスタム アクションが使用されます。WIX からコードを呼び出すにはどうすればよいですか?

  2. WIX には、<ServiceInstall>サービスをインストールするための要素があります。万能ではありませんが、この要素は非常に強力であり、Windows サービスをインストールするための推奨される方法です。WiX を使用した Windows サービスのインストールと開始を参照してください。

于 2013-06-20T06:32:24.650 に答える