【问题标题】:InstallShield conditional feature installationInstallShield 条件功能安装
【发布时间】:2018-09-17 09:07:35
【问题描述】:

如何使我的 InstallShield 项目中的某个功能仅在注册表值包含某个值时才能安装?该值可能只有“YES”或“NO”。

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

根:HKLM 密钥:Software\MyKey\the_key_to_check

值:我让它空白

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

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

尝试的结果是 -> 如果 MyValue 等于 YES,则安装该功能,如果不是,则不安装该功能。但它的条件似乎从未被评估过。

谁能帮我完成这项任务?

【问题讨论】:

    标签: windows-installer conditional-statements installshield


    【解决方案1】:

    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


    一些链接

    【讨论】:

      猜你喜欢
      • 2011-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多