我使用 Visual Studio 2015(在 Windows 10 上)开发了一个 32 位 C++ 应用程序。我想将其部署到运行 Windows 7 及更高版本的计算机上。
我组装了一个 WiX 安装程序,并包含了 VC++ 可再发行合并模块,如下所述here http://wixtoolset.org/documentation/manual/v3/howtos/redistributables_and_install_checks/install_vcredist.html。我包含的合并模块是C:\Program Files (x86)\Common Files\Merge Modules\Microsoft_VC140_CRT_x86.msm
.
该安装程序似乎工作正常,但在 Windows 7 上安装的程序将无法运行,并抱怨缺少api-ms-win-crt-runtime-l1-1-0.dll
.
通过搜索,我怀疑可再发行包中可能存在额外的文件vc_redist.x86.exe
from here https://www.microsoft.com/en-us/download/details.aspx?id=48145,但 WiX 文档告诉我使用 msm 而不是 exe。
也有可能合并模块安装失败。我没有看到任何错误,但我没有在启用日志的情况下重新运行它来检查这种可能性。
另一种选择可能是使用burn
但我对这个工具不熟悉;如果这条路是正确的,我会走这条路,但如果可能的话,我更愿意坚持使用 MSI。
Visual Studio 2015 中的 VC++ 运行时可再发行组件变得更加复杂。请参阅风险投资团队博客文章 http://blogs.msdn.com/b/vcblog/archive/2015/03/03/introducing-the-universal-crt.aspx关于通用 CRT。基本上,合并模块是不够的:
通用 CRT 不会有合并模块。如果您当前使用 CRT 合并模块并且仍想集中部署 Visual C++ 库,我们建议您移至上述 Windows 更新包或 VCRedist。或者,您可以选择静态链接到通用 CRT 和 Visual C++ 库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)