【问题标题】:How to add prerequisite check on .NET framework 4.5.2 in installshield basic MSI project如何在 installshield 基本 MSI 项目中添加对 .NET 框架 4.5.2 的先决条件检查
【发布时间】:2017-06-08 01:23:03
【问题描述】:

我将通过 installshield 安装一个 .NET 应用程序。我的 .NET 应用程序依赖于 .NET 框架 4.5.2。因此,如果安装开始后在系统上找不到 .NET framework 4.5.2 先决条件,我不希望安装继续进行。如何在 Installshield 2015 中实现这一点?

更新:当我尝试按照 Shahzad 的建议走可分发路线时,出现以下错误:

您的项目包含 installshield 先决条件。一个 setup.exe 设置 启动器是必需的。

我正在从事的项目是一个基本的 MSI 项目。我发现它应该创建一个setup.exe 作为输出来解决此错误,但我没有看到任何setup.exe 选项卡,正如here 所建议的那样。我会在Project Assistant 选项卡或Installation Designer 选项卡下看到它吗?

【问题讨论】:

    标签: installation windows-installer installshield installshield-2015


    【解决方案1】:

    您可以在Project Assistant选项卡下的安装要求中选择.Net框架的版本。或者,您也可以指定是否希望将 .Net Framework 作为安装的一部分从 安装设计器(选项卡)-> 应用程序数据(左窗格中的导航节点)-> 可再发行组件

    您还可以通过项目助手 -> 安装要求 -> 创建自定义软件条件创建自定义要求。从下拉列表中选择 Registry Entry 进行搜索。在下一步中,您可以提供 Registry Root、Registry Key Path 和要查找的值。

    你也可以看看如何设置Registry Comparison Settings

    【讨论】:

    • 在安装要求中,可用的最高检查是Microsoft .NET Framework 4.0 Full Package,因此无法为 .Net framework 4.5.2 添加先决条件检查。
    • @RBT 请检查您的系统是否安装了 .Net 4.5。它应该出现。否则,您可以创建自己的自定义需求。在那里,您将由向导引导,您可以指定文件、文件夹、注册表值的搜索条件。检查相应的注册表值,您可以检查目标系统上是否安装了 .NET 版本。
    • 我已经在我的开发箱上安装了.Net Framework 4.6.1,但它在安装要求视图中没有显示.Net Framework 4.5.2 先决条件选项。如何按照您的建议去满足自定义要求?
    • 导航到安装要求。您会注意到左侧的创建自定义软件条件。单击它,您将被向导引导。您可以使用注册表值了解是否安装了 .NET。
    • 我现在可以看到了。但它只提供了一个选项来检查是否存在注册表项。为了检查 .net 框架,我们需要检查键的特定值,如 here 所述。我怎样才能做到这一点?
    【解决方案2】:

    我正在详细说明自定义软件条件方法,以便在遇到任何困难时对他们有所帮助。当您只想检查是否存在注册表项时,自定义软件条件就足够了。

    在我的特定场景中,除了检查是否存在注册表项之外,我还必须将特定注册表项的值与预定义的值 (379893) 进行比较。我通过两步过程实现了它:

    1. 转到Project Assistant 选项卡。点击底部的Installation Requirements链接。
    2. 现在在左窗格的More Options 部分下单击Create a custom software condition 链接。

    1. 在欢迎使用系统搜索向导屏幕时单击下一步

    1. 选择Registry Entry

    1. 选择注册表项路径,该路径告诉任何计算机上安装的 .Net 框架的确切版本。在Registry Value: (Optional) 字段中输入一个变量名,它将存储键的值。此变量稍后用于创建比较条件以检查 .Net 框架版本的确切值。该变量被附加到名为SecureCustomProperties 的属性列表中。您可以在Property Manager 下的Behavior and Logic Installation Designer 选项卡上查看此属性

    1. 如果未安装所需的 .Net 框架版本,则应弹出错误消息:

    1. 这样形成的安装条件现在将显示在列表中,并在 Project Assistant 选项卡上选中其复选框。

    1. 现在转到 Installation Designer [选项卡] -> 行为和逻辑 -> 系统搜索。在这里,您将看到与我们迄今为止创建的软件搜索条件相对应的新记录。右键单击该行,然后单击Modify...

    1. 不要更改向导前两个屏幕上的任何内容。在标题为What do you want to do with the value? 的第三个屏幕上,选择Store the value in the property and use the property in an Install Condition 单选按钮。现在点击完成。

    1. 现在会弹出一个新的Condition Builder 窗口。双击Condition 列进行更改。将条件更改为DOTNETFRAMEWORKRELEASEVERSIONVALUE >= "#379893"。您可以根据this 链接上的详细信息,根据要检查的 .Net 框架更改您的条件。

    【讨论】:

      【解决方案3】:

      我们必须改变的条件如下:

      【讨论】:

      • 非常感谢屏幕截图的清晰描述。我让我的工作变得轻松。
      猜你喜欢
      • 1970-01-01
      • 2017-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多