【问题标题】:How to add new framework version in Installment Requirement page of InstallShield?如何在 InstallShield 的分期付款页面中添加新的框架版本?
【发布时间】:2018-02-26 11:22:23
【问题描述】:

InstallShieldProject Assistant->Installment Requirement截图可以看到,列表中只显示.NET Framework 4.6。

如何添加其他框架,如 4.7 及更高版本?

【问题讨论】:

    标签: windows-installer installshield


    【解决方案1】:

    您必须创建自己的自定义先决条件。只需查看 4.6 的所有设置,将它们复制到新的先决条件并相应地修改(例如注册表项、文件路径等)以反映新版本。要验证注册表项和文件路径,您需要在测试系统上安装 .NET 4.7。希望这会有所帮助。

    【讨论】:

    • 在哪里可以看到现有先决条件的设置?
    • 您使用的是哪个版本的 InstallShield?在 IS 2016 中,如果您右键单击现有先决条件(例如 .NET 4.6)并从上下文菜单中选择“编辑先决条件...”,您将看到所有属性、条件、要包含的文件等。
    • 我尝试了 IS 限量版和 IS 2018。没有上下文菜单 :(
    • 检查 C:\Program Files (x86)\InstallShield\20xx\SetupPrerequisites 中是否有任何 .prq 文件。如果是这样,您可以为 .NET 克隆现有的 .prq 文件并在任何文本编辑器中进行更改。我不确定限量版是否支持先决条件编辑,但在完整版中,您应该能够从主菜单中选择工具 > 先决条件编辑器
    • 我在 Win 10 下运行的 VS 2013 中有 IS 2015 LE,并希望添加条件来检查 .Net 4.6。文件夹 C:\Program Files (x86)\InstallShield\2015LE\SetupPrerequisites 包含 .Net 4.6 Full 和 .Net 4.6 Web 的 prq 文件,但这些文件没有出现在安装要求的列表中,安装要求在 .Net 4.5 Full 包中停止。如何将 .Net 4.6 添加到列表中?
    【解决方案2】:

    较新的先决条件现已作为 InstallShield 2018 的更新提供。转到工具 -> 检查更新以获取它们

    【讨论】:

      【解决方案3】:

      您可以添加此文件: Condition file 到路径:C:\Program Files (x86)\InstallShield\20xx\SetupPrerequisites

      【讨论】:

        【解决方案4】:

        似乎尚未添加更高版本的 .NET 框架 - 即使在最新版本 Installshield 2018 中也是如此。

        基本上这个菜单选项看起来只是添加了一个注册表搜索和一个启动条件。这个你可以自己创造。以下 MSDN 文章介绍了如何检测 .NET 框架的版本:.NET Framework deployment guide for developers

        这是一个快速的模型:

        RegLocator 表中,添加这一行:

        DotNet471Full, 2, SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full, Release, 2

        这将针对 64 位计算机上注册表的 32 位部分。这就是 Installshield 设置对以前版本框架的检查的方式,所以我使用它。

        AppSearch 表中,添加这一行:

        DOTNETVERSION471FULL, DotNet471Full

        LaunchCondition 表中,添加这一行(请参阅下面关于默认 Installshield 条件的注释 - 我在此处对其进行了扩展以缓解一些潜在问题):

        Installed OR DOTNETVERSION471FULL>="#461308", Microsoft .NET Framework 4.7.1 Full package or greater needs to be installed for this installation to continue.

        这应该会显示一条消息,通知用户缺少必备的 .NET 框架。但是,真的有必要检查最新版本吗?不是都针对同一个 CLR(版本 4)吗?


        测试注意事项:请自行彻底测试 - 在所有安装模式下(安装、卸载、修复、修改、修补、升级)。我没有准备好进行适当的测试。

        例如,DOTNETVERSION20="#1"Installshield 的默认启动条件 - 对于 .NET 框架版本 2 - 如果曾经卸载过相关的 dot net 版本,似乎会触发一个不可卸载的包(我假设那时注册表项会丢失,但我没有时间实际测试)。添加 Installed 作为 OR-condition - 就像 WiX 一样 - 似乎可以缓解问题。


        链接:

        【讨论】:

          猜你喜欢
          • 2011-02-22
          • 1970-01-01
          • 2014-10-30
          • 2020-01-03
          • 1970-01-01
          • 1970-01-01
          • 2021-08-17
          • 1970-01-01
          • 2021-01-26
          相关资源
          最近更新 更多