14

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

这是真的?如果是这样,这适用于哪些 Windows 版本以及 Visual C++ 的哪些版本?

4

2 回答 2

8

不,它们从未成为 Windows 发行版的一部分。自己部署它们是一项艰巨的要求。

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

它当然经常是偶然的。有许多程序需要 Microsoft CRT,因此用户在安装 DLL 之前运行安装程序的可能性不大。很明显,你不能依赖那次常见的事故。

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

于 2013-06-23T15:14:45.187 回答
1

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

  • :较新的 Windows 操作系统通常预装了 VC 运行时(以及较新版本的 .NET 框架)。这是因为微软在向公众(甚至 MSDN 订阅者)发布 VS 之前使用了最新/更新的 Visual Studio。如果不是这样,无论何时安装某些应用程序(旧版应用程序或某些下载的应用程序),安装程序都会安装所需的 VC++ 运行时。另一种方法是通过自动更新。
  • :如果上述规则均不适用。或者,当 VC 运行时附带新的服务包或补丁时。您可能已经使用更新的补丁/SP 开发了您的应用程序,并且必须安装(当然,作为并排安装)。
于 2013-04-03T16:06:42.180 回答