每次我安装游戏或甚至 OpenOffice 时,安装程序的一部分都是安装另一个 Visual C++ 2005/2008 可再发行组件,紧挨着我系统上已有的其他 10 个组件。
为什么需要这么多不同版本(感觉上是同一件事)?
答案1
Visual C++ 可再发行组件是由使用 Visual C++ 编写软件的应用程序开发人员提供的组件。通过在应用程序中使用 Microsoft 经过充分测试且广泛使用的代码,开发人员可以避免编写常用代码(例如正弦和余弦数学函数以及处理文本框或按钮等常见用户界面元素),从而节省开发成本。由于应用程序开发人员使用的运行时版本存在碎片化,如果您安装了大量应用程序,您将看到一长串 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++ 可再发行组件,因为 Visual C++ 可再发行组件是一个常用组件,在 64 位系统上同时安装 32 位应用程序和 64 位应用程序(甚至同时包含 32 位代码和 64 位代码的应用程序)是很正常的。
您可能可以通过寻找与可再发行组件具有相同安装日期的应用程序来找到安装可再发行组件的应用程序,但是无法确定有多少其他安装日期较晚的应用程序依赖于同一个可再发行组件。您花在查找确切依赖项上的时间很可能不值得通过卸载可再发行组件节省的几兆字节。
答案2
原因是它们不是一回事。首先,您需要了解每个版本的 MSVC++ 都附带其自己的运行时库版本。还有 32 位和 64 位版本。此外,还有服务包带来更新版本的运行时库。
如果您确实有 10 个安装,您可以列出它们的名称吗?我认为您不应该有超过 4 个(2005 版为 32 位和 64 位,2008 版也一样)。服务包应该会替换未更新的版本。
答案3
C++ 可再发行文件有许多版本,除非您确切知道哪个程序将使用该文件,否则即使删除一个,使用它的每个程序也将被永久禁用,除非重新安装。
安装了许多程序的人会拥有许多版本。微软允许重新发布程序,因此开发人员只需为您安装其中一个版本,而不必每次都编写新代码。
它们很小,无需担心。其中许多只有 KB,少数是 MB,比 GB 的程序更好。
我知道看到这么多代码会让人很恼火(我有 21 个代码),但不要管它们,如果你删除它们,你的程序就会关闭。如果程序开发人员也为单个程序标记它们,那就太好了,但如果他们这样做,你就会有更多的代码。现在程序搭载了它们,这使得程序能够使用新旧代码。
我拥有计算机网络学位。我不会告诉你任何对你的电脑做的事情,我不会对我的电脑做这些事情