Wix - 使用属性设置服务启动类型,属性无法识别?

时间:2012-02-23 18:59:44

标签: installer wix wix3.5

有没有办法通过使用属性设置服务启动类型? WiX因某些原因无法识别该物业。这应该不难,但我无法使其发挥作用。

<Property Id="StartUpType" Value="auto" />
...
...
<Component Id="..." Guid="...">
<File Id='...' Name='...' DiskId='1' Source='...'  KeyPath='yes'/>
<ServiceInstall
    Id="..."
    Type="ownProcess"
    Name="..."
    DisplayName="..."
    Description="..."
    Start="[StartUpType]"
    Account="[SERVICEACCOUNT]"
    Password="[SERVICEPASSWORD]"
    ErrorControl="normal"
    Vital="yes"
    Interactive="no" />
<ServiceControl Id="ServiceControl1" Stop="uninstall" Remove="both" Name="..." Wait="yes" />

更准确地说,这一行

Start="[StartUpType]"

没有认出我的属性。

错误:ServiceInstall / @ Start属性的值'[StartUpType]'不是合法选项之一:'auto','demand'或'disabled'。

是否有任何建议让它认出我的财产?谢谢!

1 个答案:

答案 0 :(得分:2)

有些事情,只有Formatted类型的Windows Installer中的列可以使用[Property]替换是运行时。唯一的解决方法是使用ServiceInstall表的不同实现的2个组件,其中组件具有互斥条件,因此只安装了1个。

此外,只有公共属性[PROPERTY]标记有安全属性(也称为安全自定义公共属性)才能被替换,因为监管公共和私有属性不会从UI持续执行序列。

预处理器路由仅在您想要构建类似但不同的MSI时才有效。 (构建时间变化点。)如果您需要安装时间变化点,则必须使用利用SQL临时表的自定义操作来进行互斥组件路由或更难动态安装的ServiceInstall表路由。 (更难......)