为什么有这么多不同的 Visual C++ 可再发行组件?

Tom*_*lak 20 windows visual-c++ redistributable

每次我安装游戏,甚至是 OpenOffice 时,安装例程的一部分是安装另一个 Visual C++ 2005/2008 可再发行组件,就在我系统上已有的其他 10 个组件旁边。

为什么需要这么多不同的版本(感觉像是同一件事)?

小智 22

Visual C++ 可再发行组件是由使用 Visual C++ 编写软件的应用程序开发人员提供的组件。通过在他们的应用程序中使用微软经过充分测试和广泛使用的代码,开发人员通过避免编写常用代码(例如 sin 和 cos 数学函数以及处理文本框或按钮等常见用户界面元素)来节省开发成本。由于应用程序开发人员使用的运行时版本存在碎片化,如果您安装大量应用程序,您会看到一长串 Visual C++ 可再发行组件。卸载一个 Visual C++ 可再发行组件可为您节省几兆字节的磁盘空间,但这样做可能会破坏某些应用程序。

由于程序员依赖 Microsoft 来保持 Visual C++ 运行时为最新,因此 Microsoft 发布了可再发行组件的安全更新,但由于程序员的要求,Visual C++ 再分发组件不会相互取代,并保留旧版本以保持兼容性。某些应用程序对它们所需的 Visual C++ dll 版本非常具体,以确保应用程序完全按照发布的方式运行。他们的作者坚持更新到最新的运行时,直到他们测试了他们的应用程序与新运行时的兼容性。这是在 Microsoft 发布可再发行组件更新后防止来自愤怒客户的数千个电话的一种方法。然而,大多数应用程序绑定到同一主要版本的最新版本,

微软还必须支持许多 Visual C++ 运行时,因为它不知道应用程序开发人员会选择哪一种。即使在同一个应用程序中,也可能需要多个版本的 Visual C++ 可再发行组件,例如,如果依赖于 Visual C++ 2008 可再发行组件的应用程序使用依赖于 Visual C++ 2005 可再发行组件的组件,则该应用程序的开发人员必须同时提供两个版本的 Visual C++ 可再发行组件。在 64 位计算机上,系统可以同时安装 x86 和 x64 版本的 Visual C++ Redistributables,因为 Visual C++ Redistributable 是一个常用组件,同时拥有 32 位应用程序和 64 位应用程序(甚至包含32 位代码和 64 位代码)安装在 64 位系统上。

您可能可以通过查找安装日期与可再发行组件相同的应用程序来找到安装可再发行组件的应用程序,但无法确定有多少其他安装日期较晚的应用程序依赖于同一个可再发行组件。您花在查找确切依赖项上的时间很可能不值得通过卸载可再发行组件节省的几兆字节。