【发布时间】:2018-02-26 11:22:23
【问题描述】:
从InstallShield的Project Assistant->Installment Requirement截图可以看到,列表中只显示.NET Framework 4.6。
如何添加其他框架,如 4.7 及更高版本?
【问题讨论】:
标签: windows-installer installshield
从InstallShield的Project Assistant->Installment Requirement截图可以看到,列表中只显示.NET Framework 4.6。
如何添加其他框架,如 4.7 及更高版本?
【问题讨论】:
标签: windows-installer installshield
您必须创建自己的自定义先决条件。只需查看 4.6 的所有设置,将它们复制到新的先决条件并相应地修改(例如注册表项、文件路径等)以反映新版本。要验证注册表项和文件路径,您需要在测试系统上安装 .NET 4.7。希望这会有所帮助。
【讨论】:
较新的先决条件现已作为 InstallShield 2018 的更新提供。转到工具 -> 检查更新以获取它们
【讨论】:
您可以添加此文件: Condition file 到路径:C:\Program Files (x86)\InstallShield\20xx\SetupPrerequisites
【讨论】:
似乎尚未添加更高版本的 .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 一样 - 似乎可以缓解问题。
链接:
【讨论】: