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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何根据wix中的条件设置功能级别?相关的知识,希望对你有一定的参考价值。

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

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

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

您可以通过设置条件“True”来运送功能内部的组件,如下所示。只要属性“SAMPLEFEATURE_UNLOCKED”设置为true,该功能就会解锁。 enter image description here

另一答案

如何使用WiX功能条件基本上解释如下:https://www.firegiant.com/wix/tutorial/getting-started/conditional-installation/

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

<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>

上面我们强制功能的安装级别为0,因为它的条件为1(MSI逻辑中的数字1为真 - 根据定义 - 如布尔值)。在现实世界中,条件会更加复杂 - 当然。

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

注意:在WiX源中设置Feature level to 0时,该功能不会显示在设置GUI中,默认情况下也不会安装(更多详细信息请参见下面的链接)。

特征操作可能非常复杂。一些链接:

以上是关于如何根据wix中的条件设置功能级别?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用WiX中的功能条件?

WiX Burn - 根据条件设置 InstallFolder 变量

使用wix安装程序中的复选框,根据用户选择安装的功能

使用条件元素禁用 WIX 中的复选框

如何根据目标机器(32 位或 64 位)有条件地使用 WiX 安装文件?

Wix XmlFile 元素执行得太早