首页 » 吐槽 » 正文

微软 Universal C Runtime(通用C运行库) 的那些事情

什么是“微软Universal C Runtime(通用C运行库)”?

Windows 10 通用 CRT 是 CRT 功能在 Windows 操作系统上的 Windows 操作系统组件。此更新使的 Windows 桌面应用程序依赖于 Windows 10 通用 CRT 释放在早期版本的 Windows 操作系统上运行。

使用 Windows 10 软件开发工具包 (SDK) 来构建应用程序时,Microsoft Visual Studio 2015年上通用的 CRT 创建依赖项。早在 Windows 操作系统上使这些应用程序可以正常运行,您可以安装此更新。

微软的 开发者指导官网上说 :“在非 Windows 10 平台上,Windows 10 SDK 要求安装通用 CRT: KB2999226。若要避免在设置期间发生错误,请确保在安装 Windows SDK 之前从 Microsoft 更新安装推荐的最新更新和修补程序。”从这里我们可以看出,Windows 10自带通用C运行库。

通用C运行库是使用Windows 10 SDK生成的程序的必要的运行库,微软使用了2个途径来向用户分发:1、 Visual C++ Redistributable Package 2015 ;2、Windows更新程序 KB3118401KB2999226 。这2者的关系是这样的,Visual C++ Redistributable Package 2015中包含有传统的Visual C++ 14的运行库、XP专用的通用C运行库以及KB2999226和KB3118401。而KB3118401是KB299926的升级版本,但KB3118401不支持Windows 8系统,如下图1和2所示情况,我们可以看到,KB3118401不支持Windows 8,而KB299926支持Windows 8。

其中,KB299926中,通用C运行库文件的版本为10.0.10240.16390,这是Windows 10首次发布时的版本;在KB3118401中,通用C运行库文件的版本为10.0.10586.9,这是Windows 10 TH2的版本。

我们将Visual C++ Redistributable Package 2015解压后发现XP专用的通用C运行库文件,由名为“vc_runtimeMinimum.msi”的文件来安装,只用于XP。其文件版本如下图3所示,为10.0.10586.15。

而传统的Visual C++ 14运行库,由名为“vc_runtimeAdditional.msi”的文件来安装。其包含的文件如下图4所示,可以看出,和我们常见的Windows运行库文件命名很类似。

最终我们得出这么几个结论:

1、通用C运行库是使用Windows 10 SDK生成的程序的必要的运行库.

2、微软使用了2种方式分发通用C运行库。

3、Windows 10已经自带通用C运行库。

4、Visual C++ Redistributable Package 2015中包含通过Windows Update分发的2个补丁。

5、这2个补丁不适合于XP系统,XP系统由Visual C++ Redistributable Package 2015中的vc_runtimeMinimum.msi来分发(XP已经没有补丁打了,不内置在运行库难道?)

6、Windows 8系统永远只能获取10.0.10240.16390版本的通用C运行库(目前是这样,除非微软改变做法给其升级通用C运行库的版本)

7、这也是为什么你在网上搜索” Visual C++ Redistributable Package 2015 failed “,能得到170万条结果,因为这个运行库过于复杂:包含

Visual C++ 14的运行库、XP专用的通用C运行库以及KB2999226和KB3118401。当一个安装包包含四个大组件时,你不能苛求他能异常稳定的安装成功。

8、如果禁用Windows Update服务,那么在Win7到Win8.1下安装Visual C++ Redistributable Package 2015运行库,那么你将注定失败(除非你已经打了KB3118401或KB299926)

发表评论