我正在尝试使用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安装我的服务吗?
答案 0 :(得分:2)
我看到可能导致失败的几个原因:
你没有打电话
Installers.Add(this.ServiceInstaller);
Installers.Add(this.ServiceProcessInstaller);
在您的方法结束时。 The Installers.Add(..)
行实际上应该将服务添加到服务表。 See the example at the end of this page
据我所知,WIX不支持Installer类,而是使用自定义操作。你如何从WIX调用你的代码?
WIX有一个<ServiceInstall>
元素用于安装服务。虽然不是全能,但这个元素非常强大,是安装Windows服务的首选方法。请参阅Installing and starting a Windows Service using WiX