如何根据wix中的条件设置功能级别?

时间:2014-03-13 06:46:06

标签: wix

我正在尝试根据条件安装功能。最初,我将功能级别设置为1,并在功能内部放置条件以修改功能级别。

我无法修改功能级别,并且无论条件如何,它始终设置为1.

<Feature
        Id = "AddinsFeature"
        Title  = "InstallAddin"
        Level  = "1"
        Absent="allow">
      <ComponentRef Id = "AddInComp"/>
        <Condition Level="0">
          <![CDATA[FALSE]]>
        </Condition>
</Feature>

2 个答案:

答案 0 :(得分:0)

您可以通过设置条件“ True”(如下所示)来运送功能部件内部存在的组件。每当属性“ SAMPLEFEATURE_UNLOCKED”设置为true时,该功能将被解锁。 enter image description here

答案 1 :(得分:0)

此处基本上说明了如何使用WiX功能条件: https://www.firegiant.com/wix/tutorial/getting-started/conditional-installation/

要将功能设置为条件指定的级别,条件必须评估为true。您可以通过将其设置为1来强制其为真。

onChange: JSX.IntrinsicElements['input']['onChange'] = (e) => {
    this.setState({ [e.target.name]: e.target.value } as any as IMyClassState);
};

在上面我们将功能的安装级别强制为0,因为其条件1为true(在MSI逻辑中-根据定义-布尔值,数字1为true)。在现实世界中,情况要复杂得多-当然。

每个设置都有一个整体INSTALLLEVEL - and it acts as a high water mark as explained here by Chris Painter。默认情况下,所有评估到某个功能级别低于或低于INSTALLLEVEL的功能都会安装。

  

注意:当您在WiX源中设置 <Feature Id="AddinsFeature" Title="InstallAddin" Level="1" Absent="allow"> <!-- Force condition to be true, which sets the feature to the Level attribute value --> <Condition Level="0">1</Condition> <ComponentRef Id = "AddInComp"/> </Feature> 时,该功能不会显示在设置GUI中,并且不是   将会默认安装(更多详细信息,请参见下面的链接)。

功能操纵可能非常复杂。一些链接: