she*_*udi 3 windows visual-c++
我打算将 VC++ 应用程序部署到 Windows Server 2016(数据中心)。我不确定操作系统是否已经具有我需要的 vc++ 运行时,或者我必须将它们与我的应用程序一起带来?在哪里可以查看这些信息,例如不同 Windows 操作系统版本默认存在的 VC++ 运行时?
在遥远的过去(Visual C++ 4 左右),有一个 OS C/C++ Runtime (CRT) 导致了很多DLL Hell。
Visual C++ 2005/2008 对 (CRT) . 这样做的目的是允许并行应用程序本地和中央服务,但事实证明它有很多自己的问题
Visual C++ 2010、2012 和 2013 有一个简单的“安装到 System32 文件夹”系统范围 - 或 - “并排放置”应用程序本地样式。如果您使用本地应用程序,那么基本上由应用程序开发人员来更新他们用于服务的副本。
Visual C++ 2015 与 VS 2010/2012/2013 的故事类似,只是 C/C++ 运行时本身进行了重构。
C 运行时的核心部分是 Windows 10 操作系统的一部分 - 旧操作系统的下层版本作为 VCREDIST 包的一部分进行处理 - 通过 Windows 更新提供服务。这就是UCRTBASE.DLL
所谓的通用 CRT。
Visual C/C++ 运行时的部署方式与 VS 2012/2013 故事中的部署方式相同。它依赖于UCRTBASE.DLL
. Visual C++/C++ 运行时与您正在使用的 Visual C++ 的特定版本相关联。
目前,VS 2015、VS 2017 和 VS 2019 CRT 是二进制兼容的,因此您可以混合使用所有三个工具集构建的代码,但您需要链接到较新的 Visual C/C++ 运行时库才能使一切正常工作。
请参阅微软文档
请注意,通用 Windows 平台 (UWP) 模型为您处理的事情之一是通过应用商店部署 Visual C/C++ 运行时的正确副本。这与其说是“包含在操作系统中”,不如说是“代表 Windows 应用商店应用程序进行透明处理”。
更新:二进制兼容承诺从 VS 2015 Update 3 变为 VS 2022。请注意,您需要使用最新的工具集进行链接才能使其工作,当然还需要重新分发最新版本的运行时 DLL。
归档时间: |
|
查看次数: |
941 次 |
最近记录: |