2010-08-27 53 views
1

我有两个Windows服务的WIX安装程序。两者都使用相同的凭据进行安装,但其中一个可以正常工作,另一个可以正常工作,并且出现错误“服务”无法安装PCP事件处理器-3.9.9.0-wix'(MyServiceExeName)。验证您是否有足够的权限来安装系统服务。 。”我用与使用的凭据这两个项目的共同WXI文件,所以它不是一个帐户名或域名错字AFAICS正在安装的两个服务之间的唯一实质性的区别是:两个几乎完全相同的WIX项目 - 一个正常工作,另一个没有安全问题

  • 失败的项目对第三方组件一个.licx文件。
  • 失败的项目是一个WinExe项目,成功安装是一个EXE(控制台风格的应用程序)

据我所看到的,有没有这两个安装程序的wxs文件之间的真正区别(显然GUID是不同的)。失败的组件有WI X安装这样的代码:

<Component Id="cmpMainExe" Guid="{EXCISED-FOR-CUT-N-PASTERS}"> 
    <File Id="filASJHDJSDJSHGDJH" Source="$(var.EventPollingService.TargetDir)\EventPollingService.exe" /> 
    <ServiceInstall Name="$(var.SVCNAME)-$(var.ProductVersion)-$(var.BranchName)" 
        DisplayName="PCP $(var.SVCNAME)-$(var.ProductVersion)-$(var.BranchName)" 
        Type="ownProcess" 
        Interactive="no" 
        Start="auto" 
        Vital="yes" 
        ErrorControl="normal" 
        Description="Manages the state model of a user's session by handling incoming events from the dialler" 
        Account="$(var.ServiceAccountId)" 
        Password="$(var.ServiceAccountPwd)" /> 
    <ServiceControl Id="StartWixServiceInstaller" 
        Name="$(var.SVCNAME)-$(var.ProductVersion)-$(var.BranchName)" 
        Start="install" 
        Wait="yes" /> 
    <ServiceControl Id="StopWixServiceInstaller" 
        Name="$(var.SVCNAME)-$(var.ProductVersion)-$(var.BranchName)" 
        Stop="both" Wait="yes" 
        Remove="uninstall" /> 
</Component> 

我使用维克斯3.5还愿在VS 2010中,和这两个项目是.NET 3.5 SP1的应用程序。我正在使用Windows 7,并关闭了UAC。

任何想法?

回答

2

看看两个构建MSI的ORCA from Windows SDK并验证ServiceInstall表项看起来是一样的。

但是,根据我的经验,这不太可能是安装程序问题。这通常是一个指向应用程序问题的红鲱鱼,例如缺少依赖关系或应用程序异常。在排除ServiceInstall条目并验证服务帐户凭据是否正确后,该帐户不会被禁用,并且帐户有权作为服务登录,然后开始分析您的应用程序。当安装程序挂在错误窗口时,这是最容易做到的。

最后两个想法:

如果程序有它不会因为这些工作winsxs文件或GAC的依赖性还是没有得到安装,直到提交执行这是试图启动服务后

如果您需要授予用户LogonAsService权限,查看WiX中的用户元素。

+0

我已经添加了ORCA的链接,因为第一次找它时不容易找到 – quetzalcoatl 2014-02-28 18:40:13

相关问题