2

我正在尝试使用 WIX 安装 Windows 服务。Windows 服务安装正常,如果我在服务管理器中检查,我可以看到我的服务已安装并正在尝试启动,如下所示:

日志服务

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 回答