gpt4 book ai didi

wix - 如何有条件地从托管自定义操作 (DTF) 中排除 WiX 3.0 中 "FeaturesDlg"的功能

转载 作者:行者123 更新时间:2023-12-05 00:06:54 25 4
gpt4 key购买 nike

我正在尝试使用 WiX 3.0 组装一个安装程序,但我不确定一件事。我想用FeaturesDlg对话框以允许用户选择要安装的功能,但我需要能够根据之前收到的某些输入(最好是从托管的自定义操作)有条件地从列表中排除某些功能。

我看到如果我设置 Display Feature 的属性至 hidden在 .wxs 文件中,它执行我想要的操作,但我无法找到在运行时更改该属性的方法。

任何指针都会很棒。

编辑 :

我尝试使用 SQL 更新 session 数据库,但实际上我可以使用 DELETE FROM Feature WHERE Feature = 'featureId' 删除该功能。 ,如果我尝试使用 UPDATE Feature SET Display=0 WHERE Feature='featureId' , 我得到一个 UPDATE FAILED错误。如果我尝试设置 Display除了已经设置的值之外的任何值,我都会收到该错误。

删除该功能几乎已经足够了,但是如果用户返回并更改一些输入数据,我将需要能够返回并重新添加该功能。

最佳答案

好吧,我想我偶然找到了解决方案。经过一系列试验后,我遇到了来自 MSI 的错误消息,该消息有点描述了当前 session 中功能表的一些列,并且有一列“RuntimeLevel”在我能找到的任何文档中都没有描述。所以我试过这个:

session.Database.Execute("UPDATE Feature SET RuntimeLevel=0 WHERE Feature='MyFeature'");

它奏效了;该功能不再列在选择树中。然后我用 RuntimeLevel=1 再次运行相同的查询,它再次被列出。

由于我不确定这个解决方案是否有任何奇怪的影响,我将把这个问题再悬而未决,以防万一其他人有一个“更好”的解决方案。

关于wix - 如何有条件地从托管自定义操作 (DTF) 中排除 WiX 3.0 中 "FeaturesDlg"的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2742359/

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