WIX安装Windows服务

时间:2013-06-20 03:27:22

标签: wix wix3.5 wix3 wix3.6

我正在尝试使用WIX安装Windows服务。 Windows服务安装正常,如果我在Service Manager内部检查,我可以看到我的服务已经安装并且正在尝试启动,如下所示:

logservice

3到4分钟后,我收到错误,需要足够的权限。请参阅图像以获取错误消息:

setupinstalling

如果我手动运行我的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安装我的服务吗?

1 个答案:

答案 0 :(得分:2)

我看到可能导致失败的几个原因:

  1. 你没有打电话

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

  2. 在您的方法结束时。 The Installers.Add(..)行实际上应该将服务添加到服务表。 See the example at the end of this page

    1. 据我所知,WIX不支持Installer类,而是使用自定义操作。你如何从WIX调用你的代码?

    2. WIX有一个<ServiceInstall>元素用于安装服务。虽然不是全能,但这个元素非常强大,是安装Windows服务的首选方法。请参阅Installing and starting a Windows Service using WiX