Wix 将服务配置为延迟自动启动(以及XP/2003上的自动启动)

Wix 将服务配置为延迟自动启动(以及XP/2003上的自动启动),wix,windows-installer,Wix,Windows Installer,我有一个WiX脚本,用于安装服务。我在组件下有以下服务安装元素 <ServiceInstall Id="ServiceInstaller" Type="ownProcess" Vital="yes" Name="abc" DisplayName="abc service" Description="It does this" Start="auto" Account="LocalSystem"

我有一个WiX脚本,用于安装服务。我在
组件
下有以下
服务安装
元素

<ServiceInstall Id="ServiceInstaller" Type="ownProcess" Vital="yes"
                Name="abc" DisplayName="abc service"
                Description="It does this" Start="auto"
                Account="LocalSystem" ErrorControl="normal" Interactive="no">
  <ServiceConfig DelayedAutoStart="yes" OnInstall="yes" OnReinstall ="yes" />
</ServiceInstall>
因此,问题很简单:

  • 如何将服务启动设置为自动(延迟启动)
  • 如何有条件地仅在Vista及以上版本上执行此操作,以及在Windows XP/2003上执行普通(自动)操作
  • 检查后,目前似乎不可能。Wix仅使用
    服务配置失败操作
    参数调用,而不使用
    服务配置延迟自动启动信息
    调用

    如果我是你,我会在CMD中编写一个自定义操作,调用
    sc config abc start=delayed auto


    至于您的第二个问题,请添加VersionNT版本条件(
    VersionNT>=600
    ,适用于所有高于Vista的版本)

    ,理想情况下,它不应给出该警告。由于链接到的源代码用于WIX的
    UtilExtension
    元素(具有
    FirstFailureActionType
    属性),因此被否决而不是原始的MSI
    元素(具有
    DelayedAutoStart
    OnInstall
    属性),感谢对@Dai的否决。然而,OP确实使用了UtilExtension,正如您很容易看到的那样,candle.exe在使用ServiceConfig时会触发一个警告,正如OP所记录的。我很乐意接受否决票,但也请友好地为OPs问题提供更好的答案。
    <Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'
      xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">