Visual C ++dynamic运行时库是现在Windows操作系统的一部分吗?

Visual C ++(更具体地说是2008年)的dynamic运行时库是现在Windows操作系统的一部分吗? 我注意到,至less在Windows 8上,您不再需要将这些应用程序与您的应用程序一起发布,或让用户从Microsoft安装可再发行组件包。

这是真的? 如果是这样,那么Windows版本和Visual C ++的版本是否适用?

不,他们从来没有成为Windows发行版的一部分。 部署它们是一项艰巨的任务。

这当然可能看起来是这样。 从system32目录中的msvcrt.dll开始,它与VS2002(VS6及更早版本)之前的Visual Studio版本中的C ++运行时DLL具有相同的名称。 但是,它是Windows可执行文件使用的CRT的专用副本。 并受Windows中的文件系统保护功能的保护,防止旧的安装程序破坏操作系统。

这当然经常是偶然的。 有许多程序需要Microsoft CRT,所以用户在安装DLL之前运行安装程序并不是不可能的。 显然你不能依靠这个常见的事故。

同样,对于Windows 8,预安装的Microsoft.VCLibs.110软件包与使用C ++编写的Store应用程序所需的软件包相匹配。 但是,正是出于上述原因,Microsoft Store程序也是使用VS2012构建的,就像您的一样。 即将到来的VS2013会发生什么事情,现在有点混乱,我们很快就会知道。

在我看来,答案将是:是和否

  • 是的 :更新的Windows操作系统通常随附预装VC运行时(以及更新版本的.NET框架)。 这是因为微软在向公众(甚至是MSDN用户)发布VS之前使用了最新/更新的Visual Studio。 如果不是这样的话,无论何时安装一些应用程序(遗留应用程序或一些下载的应用程序),安装程序都会安装所需的VC ++运行时。 另一种方式是通过自动更新。
  • :如果没有上述规则适用。 或者,在VC运行时随附新的Service Pack或补丁。 您可能已经使用较新的补丁/ SP开发了您的应用程序,并且必须安装(当然,并排)。