gpt4 book ai didi

wix - 是否有一个变量我可以查询以找出是否在 FeaturesDlg 中选择了要安装的功能

转载 作者:行者123 更新时间:2023-12-04 18:08:07 26 4
gpt4 key购买 nike

我正在使用与 WixUI_Advanced 的自定义偏差,它使用 FeaturesDlg 来选择将安装哪些组件。其中一个组件需要自定义操作才能安装,但如果我不安装该功能,我不想运行该自定义操作。是否有某种方法可以查询安装程序 session 或其他内容并为我的自定义操作构建条件,以便仅在选择此功能时才触发?

编辑:我应该澄清一下,我正在寻找可以在 .wxs 中使用的语言来确定是否已选择该功能。像这样的东西,只有我没有编写的真实代码:

      <!--NOT REAL CODE-->
<Custom Action="ThingToDoIfFeatureSelected" Before="InstallFinalize">
$(sys.MyFeatureSessionInformation.Level) > 1
</Custom>

我知道在运行时 session 中必须存在此信息,否则安装程序将无法安装正确的功能,但我找不到任何引用此 session 信息的 WIX 语言引用。我无法更改自定义操作本身中的代码,因此我需要在 WIX 标记中测试此条件。

最佳答案

我找到了我的答案。我需要的条件标记是这样的:

<Custom Action="ThingToDoIfFeatureSelected"  Before="InstallFinalize">
<![CDATA[ADDLOCAL >< "MyFeatureName"]]>
</Custom>

全局变量 ADDLOCAL 包含将在本地安装的功能列表。它是一个简单的逗号分隔的字符串,所以 ><运算符测试第一个字符串是否包含第二个字符串,如果我的特征在列表中,则返回 true。 CDATA 防止我不得不逃离 >< .没有它, ><必须写成 &gt;&lt;
就我而言,我已经通过将此属性添加到我的功能中来将安装限制在本地: InstallDefault="local" .因此,如果我的功能不在 ADDLOCAL 中,则不会安装它。如果我没有限制安装位置,我将不得不检查每个可能的位置,如下所示:
<Custom Action="ThingToDoIfFeatureSelected"  Before="InstallFinalize">
<![CDATA[ADDLOCAL >< "MyFeatureName" OR ADDSOURCE >< "MyFeatureName" OR ADDDEFAULT >< "MyFeatureName"]]>
</Custom>

替代解决方案:我为我的场景找到了另一个更简单、更精确的解决方案,它检查了“功能 Action ”。条件 &MyFeatureName=3意味着这是我们要安装此功能的具体时间(尚未安装,我们现在正在安装。)同样,条件 MyFeatureName=2意味着这是我们将卸载此功能的时间(现在已安装,我们正在删除它)。

有关这些条件的更多信息,请访问 this page .

关于wix - 是否有一个变量我可以查询以找出是否在 FeaturesDlg 中选择了要安装的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21715115/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com