使用VS2015为Vista编译C++
Using VS2015 to compile C++ for Vista
几天前,我在微软论坛的 header 中提出了这个问题。
我得到了两个恕我直言不太好的选项:
- 在目标机器上安装 VS2015 可再发行组件。
- 静态编译,代码不会调用 VS2015 DLL 文件。
第一个选项显着增加了我的应用程序的安装时间。
第二个选项会显着增加二进制文件的大小,增加构建时间并且在使用标志 /CLR 编译时不适用。
现在看来,通过将我的开发转移到 Visual Studio 2015,我不得不放弃对 Vista 的支持(实际上,也对 Windows 7)或提供比我以前拥有的产品更差的产品提供。
注意:我希望使用 Platform Toolset = v140_xp 可以解决问题,但显然不会。
请赐教更好的解决方法
VS2015 的情况有所改变。本文解释了您需要做什么:http://blogs.msdn.com/b/vcblog/archive/2015/03/03/introducing-the-universal-crt.aspx
简而言之,通用 CRT 现在是一个 Windows 组件。它随 Windows 10 提供,并通过 Windows 更新早期版本。您的选择:
- 依靠 Windows 更新包。
- 应用运行时可再发行组件。
- Link 静态,强烈建议不要这样做。
- 部署应用本地安装运行时所需的二进制文件。
最后一个选项与您当前的操作相符。文章说:
App-local deployment of the Universal CRT is supported. To obtain the binaries for app-local deployment, install the Windows Software Development Kit (SDK) for Windows 10. The binaries will be installed to C:\Program Files (x86)\Windows Kits\Redist\ucrt. You will need to copy all of the DLLs with your app (note that the set of DLLs are necessary is different on different versions of Windows, so you must include all of the DLLs in order for your program to run on all supported versions of Windows).
几天前,我在微软论坛的 header 中提出了这个问题。 我得到了两个恕我直言不太好的选项:
- 在目标机器上安装 VS2015 可再发行组件。
- 静态编译,代码不会调用 VS2015 DLL 文件。
第一个选项显着增加了我的应用程序的安装时间。
第二个选项会显着增加二进制文件的大小,增加构建时间并且在使用标志 /CLR 编译时不适用。
现在看来,通过将我的开发转移到 Visual Studio 2015,我不得不放弃对 Vista 的支持(实际上,也对 Windows 7)或提供比我以前拥有的产品更差的产品提供。
注意:我希望使用 Platform Toolset = v140_xp 可以解决问题,但显然不会。
请赐教更好的解决方法
VS2015 的情况有所改变。本文解释了您需要做什么:http://blogs.msdn.com/b/vcblog/archive/2015/03/03/introducing-the-universal-crt.aspx
简而言之,通用 CRT 现在是一个 Windows 组件。它随 Windows 10 提供,并通过 Windows 更新早期版本。您的选择:
- 依靠 Windows 更新包。
- 应用运行时可再发行组件。
- Link 静态,强烈建议不要这样做。
- 部署应用本地安装运行时所需的二进制文件。
最后一个选项与您当前的操作相符。文章说:
App-local deployment of the Universal CRT is supported. To obtain the binaries for app-local deployment, install the Windows Software Development Kit (SDK) for Windows 10. The binaries will be installed to C:\Program Files (x86)\Windows Kits\Redist\ucrt. You will need to copy all of the DLLs with your app (note that the set of DLLs are necessary is different on different versions of Windows, so you must include all of the DLLs in order for your program to run on all supported versions of Windows).