InstallShield条件功能安装

时间:2018-09-17 09:07:35

标签: windows-installer conditional-statements installshield

仅在注册表值包含特定值的情况下,如何才能在InstallShield项目上安装功能?该值只能是“是”或“否”。

我试图像这样配置系统搜索:

根:HKLM 密钥:软件\ MyKey \ the_key_to_check

值:我将其留空

将值存储在此属性中:ISVALUE(刚刚创建的属性,没有任何值),然后“仅将值存储在属性中”。

然后,在我的特征条件下: 安装等级:1 条件:等级:200,ISVALUE =是

尝试的结果是->如果MyValue等于YES,则安装该功能,否则,不安装该功能。但这情况似乎从未得到评估。

有人可以帮助我执行此任务吗?

1 个答案:

答案 0 :(得分:0)

INSTALLLEVEL :由Chris Painter提供的对 INSTALLLEVEL 概念的快速回顾:Set sub-features to not install by default。本质上:每个功能都有一个级别值,整个设置都有一个整体 INSTALLLEVEL 。默认情况下会安装 INSTALLLEVEL 或以下的所有功能。我认为Installshield中的默认 INSTALLLEVEL 100 (可调)。

Installshield :这是带有Installshield屏幕截图的功能条件示例:Preselecting Features within an InstallShield Basic MSI Project。一种特殊情况是,当您将 Level 设置为 0 时-您不安装该功能,也不将其从设置GUI中隐藏(请参阅下面的链接,了解为什么将此功能设置为默认值是一个非常糟糕的主意-我认为可以在条件中进行分配,但是,请不要将其设为默认值。

建议 :您可以尝试执行以下操作:

  • 选项1: Level: 0, Condition: ISVALUE=NO (在GUI中隐藏功能,如果ISVALUE = NO,则不安装功能)

  • 选项2: Level: 101, Condition: ISVALUE=NO (如果ISVALUE = NO,则不安装功能)

对于这两个选项,请记住将默认功能级别设置为“默认安装”。换句话说,等于或低于安装程序的整体INSTALLLEVEL。例如 100


某些链接