我使用Visual Studio 2015(在Windows 10上)开发了一个32位C++应用程序.我想将它部署到运行Windows 7及更高版本的计算机上.
我把一个WiX的安装程序并按照上述方法包括VC++可再发行合并模块这里.我包含的合并模块是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
从这里,但WiX的文档告诉我用的MSM,而不是一个exe.
合并模块也可能无法安装.我没有看到任何错误,但我没有重新运行它,启用日志来检查这种可能性.
另一种选择可能是使用,burn
但我不熟悉这个工具; 如果这是正确的,我会走那条路,但如果可能的话,我宁愿坚持使用MSI.
VC++运行时可再发行组件在Visual Studio 2015中变得更加复杂.请参阅VC团队博客文章,了解有关通用CRT的信息.基本上,合并模块不足:
Universal CRT不会有合并模块.如果您当前使用CRT合并模块并仍希望集中部署Visual C++库,我们建议您转到上面提到的Windows Update程序包或VCRedist.或者,您可以选择静态链接到Universal CRT和Visual C++库.