Windows 安装程序 4.5 未出现在先决条件组件列表中

Windows Installer 4.5 Doesn't appear in the prerequisites component list

在设置 属性 页面的先决条件中,我选择了从组件供应商的网站下载先决条件的选项

安装选项的先决条件中没有Windows Installer 4.5..

因为每次安装我的设置时都使用自定义操作中的 sqlexpr_x64_ENU.exe 安装,运行 提取 sqlserver 后的设置会弹出 window 说

此 Windows 安装程序包有问题。作为设置一部分的程序 运行 未按预期完成。联系您的支持人员或软件包供应商

我在 windows 10

上使用 VS2017

排除 MSI 引擎:这些天你不应该在任何软件包中包含 Windows Installer 4.5。 This runtime is from back in the day of Windows Vista - 我们在版本 5 上很久了。Windows 安装程序应该只能通过 Windows 更新部署到今天 - 在我看来。在设置中保留 运行 时间。

无并发性:您不能通过自定义操作从另一个 MSI 设置中 运行 设置一个 MSI。这是由于技术限制。 mutex 当 MSI 运行 的实际安装顺序设置时,从中触发另一个安装顺序将失败。

Setup.exe Launcher:您需要通过 setup.exe 启动器。这 运行s 安装是串行的,不是并行的。您正在安装 SQL 服务器的哪个版本?我在 Visual Studio 安装程序项目启动器中只看到几个可用的版本。

其他工具具有允许您按顺序安装带有各种嵌入式软件包的 setup.exe 的功能。我已经在之前的答案中解释过无数次如何做到这一点。以下是我快速找到的一些内容:

  • (基本上完全相同的问题 - 我建议 WiX 是开源的免费替代品)
  • (我建议使用 WiX 和一些更容易使用的商业工具 - 也许尝试阅读这个)
  • Cannot call command.exe(SQL Server Setup.exe) while calling C# CA with parameters
  • (工具列表)
  • Combine exe and msi file in one installer
  • Visual Studio 2017 Installer Project - include VC++ 2015 Redistributable

总体情况:

  1. 问题不在于 Windows Installer 4.5,而是您正在尝试进行递归 MSI 安装(SQL 来自您内部的安装),这不是允许并会失败。

  2. MSI 4.5 引擎已经过时了,大约有 10 年的历史了,无论如何这不是问题所在,也不清楚您为什么认为它是问题所在。但它在我的 VS 2017 安装项目先决条件的先决条件列表中 - 请参阅 3 - 即使你几乎肯定不需要它。

  3. VS 安装项目的先决条件中有一些 SQL Express 选项可用 - 右键单击​​解决方案资源管理器中的项目并选择“属性”,然后选择“先决条件”。