【发布时间】:2015-11-08 19:42:33
【问题描述】:
几天前,我在微软论坛的标题中提出了这个问题。 我得到了两个选项,恕我直言不是很好:
- 在目标机器上安装 VS2015 可再发行组件。
- 静态编译,使代码不会调用VS2015 DLL文件。
第一个选项大大增加了我的应用程序的安装时间。
第二个选项会显着增加二进制文件的大小,增加构建时间,并且在使用标志 /CLR 编译时不适用。
现在看来,通过将我的开发转移到 Visual Studio 2015,我必须放弃对 Vista(实际上,也包括 Windows 7)的支持,或者提供比我之前提供的产品更差的产品。
注意:我希望使用 Platform Toolset = v140_xp 可以解决问题,但显然不会。
请给我一个更好的解决方案。
【问题讨论】:
-
VS2015 redistributables 是正确的做法。
-
即使您使用的是早期版本的 Visual Studio,您仍然会遇到此问题。较旧版本的 Windows 不能可靠地保证在发布后具有将安装较新 MSVCRT DLL 的更新。 I answered this question with regards to VS 2010 binaries a long time ago.答案对VS 2015仍然有效。2015 download here
-
在旧版本的 VS 中,您可以将所需的 DLL 文件(例如 msvcp110.dll、msvcr110.dll)添加到您的安装中。就我而言,它解决了问题。不再。添加 vcruntime14.dll 只会将问题提前一步移到缺少 DLL 文件的新列表中。
-
显然您需要分发正确的运行时文件集。没有什么新东西。
-
@DavidHeffernan 我不同意。 MS 提供“目标”和“工具集”选项的目的是,或者我理解,您将能够创建在旧平台上运行的应用程序。
标签: c++ visual-studio-2015 windows-vista redistributable