当前位置:  开发笔记 > 后端 > 正文

用于部署在Windows 7上使用Visual Studio 2015开发的C++ exe的可再发行组件

如何解决《用于部署在Windows7上使用VisualStudio2015开发的C++exe的可再发行组件》经验,为你挑选了1个好方法。

我使用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.



1> Bob Arnson..:

VC++运行时可再发行组件在Visual Studio 2015中变得更加复杂.请参阅VC团队博客文章,了解有关通用CRT的信息.基本上,合并模块不足:

Universal CRT不会有合并模块.如果您当前使用CRT合并模块并仍希望集中部署Visual C++库,我们建议您转到上面提到的Windows Update程序包或VCRedist.或者,您可以选择静态链接到Universal CRT和Visual C++库.


那太好了.Visual Studio的另一个版本以及多年来一直有效的东西现在"不受支持".
实际上,合并模块Microsoft_VC140_CRT_x86.msm包含UCRT,但仅适用于Windows XP(条件安装).从Vista开始的所有Windows都应通过Windows更新或vc_redist获取UCRT.因此,如果您使用msm并在WXP上测试安装程序,它将起作用,但在较新的操作系统上可能缺少UCRT.
推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有