InstallShield条件功能安装

问题描述 投票:1回答:1

仅当注册表值包含特定值时,如何才能在InstallShield项目上创建功能?该值可能仅为“是”或“否”。

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

Root:HKLM密钥:Software \ MyKey \ the_key_to_check

价值:我让它空白

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

然后,在我的功能条件:安装级别:1条件:级别:200,ISVALUE = YES

尝试的结果是 - >如果MyValue等于YES,则安装该功能,如果没有,则不安装该功能。但它似乎永远不会评估这种情况。

任何人都可以帮我完成这项任务吗?

windows-installer conditional-statements installshield
1个回答
0
投票

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

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


一些链接:

© www.soinside.com 2019 - 2024. All rights reserved.