查找 vcredist_x86.exe 的合并模块

Find merge modules for vcredist_x86.exe

最新的 visual studio c++ 可再发行组件位于 here。但问题是我想包含它来安装屏蔽安装,它需要合并模块而不是 exe 文件。

如何找到对应的合并模块(msm文件)?有什么办法可以下载到installshield吗?

总结:使用 Installshield 安装 VC++ 运行time 通过“套件项目”(使用启动器安装的设置链),或在安装了 Visual Studio 的系统磁盘上找到合并模块,并将相关项目复制到 Installshield 可再发行文件夹。

记得好好测试,安装后还要做一个Windows更新检查是否有未决的安全修复(你的合并模块可能不是最新的).如果您发现问题,请尝试更新 Visual Studio - 或者手动安装最新的 SDK 并寻找更新版本的合并模块。


The Redistributables View doesn't show you anything to download? Also on why you should use the executables instead of the merge modules. Top-end, newer versions of Installshield allow you to create Suite projects(详见link,这里是截图):

您还应该安装 (如果您在那个盒子上安装了 Visual Studio)。类似于:C:\Program Files (x86)\Microsoft Visual Studio17\[EditionHere]\VC\Redist\MSVC\[VersionHere]\MergeModules.

但是,上面提到的套件项目应该允许您 运行 可执行版本,但如果您使用的是较旧的 Installshield 版本则不允许。

Visual C++ 运行时依赖于通用 CRT,您不能通过合并模块在 end-user 的计算机上安装通用 CRT(Windows XP 除外)。合并模块在 Vista/7/8/8.1/10.

上对它完全没有任何作用

查看 Daniel Griffing 对 this Visual Studio bug report 的评论。

三种解决方案:

  1. 需要Windows 10. OS内置了UCRT;它会一直存在。
  2. 需要 Windows <10 个用户安装 Windows 在安装您的应用程序之前更新 KB2999226
  3. 将 UCRT 作为文件手动分发到您的应用程序目录中。这既麻烦又危险,因为它们不会收到安全更新,但很多应用程序都会这样做。

每个使用动态 CRT 并使用 Windows 10 SDK(Visual Studio 2015、2017 或 2019)构建的程序都需要 KB2999226 或 UCRT 文件的副本到 运行 在 Windows <10 上,否则将失败缺少 api-ms-win-crt-runtime-l1-1-0-dll。这些程序对 Windows 10.

上的 运行 没有任何要求

由于知识库文章中的下载链接已失效,您可能需要将您的用户指向: