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


19

每次安装游戏,甚至安装OpenOffice时,安装程​​序的一部分都在安装又一个Visual C ++ 2005/2008可再发行文件,紧接我系统上已有的其他10个文件。

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


我最近没有在Windows上安装OpenOffice,而是AFAIK OO.org纯Java。烦死了!
lajuette

2
OO.org实际上主要是带有某些Java组件()的C ++ 。
重载2010年

这并不少见。我希望有一种在添加/删除程序中直观地汇总它们的方法,这样您就不必全部查看它们。
Keltari

Answers:


22

Visual C ++可再发行组件是使用Visual C ++编写软件的应用程序开发人员提供的组件。通过在其应用程序内部使用Microsoft经过良好测试和广泛使用的代码,开发人员可以避免编写常用代码(例如sin和cos数学函数以及处理诸如文本框或按钮之类的常用用户界面元素),从而节省了开发成本。由于应用程序开发人员所使用的运行时版本中的碎片,如果您安装了许多应用程序,将会看到一堆Visual C ++可再发行文件。卸载一个可再发行的Visual C ++可以节省几MB的磁盘空间,但是这样做可能会损坏一些应用程序。

由于程序员依赖Microsoft来保持Visual C ++运行时的最新状态,因此Microsoft发布了可再发行文件的安全更新,但是由于程序员的要求,Visual C ++可再发行文件不会互相取代,并且为了兼容性而保留了旧版本。有些应用程序非常具体地要求它们确保Visual Studio DLL的版本完全与发布时一样运行。他们的作者坚持更新到最新的运行时,直到他们测试了应用程序与新运行时的兼容性。在Microsoft发布可再发行的更新程序之后,这是一种防止愤怒的客户拨打数千个电话的方法。但是,大多数应用程序都绑定到相同主版本的最新版本,

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

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


这是一个很好的答案。开发人员还针对特定版本。版本A中的功能不能保证与版本B中的功能相同。当然,实际上,在版本B中,其基本功能将保持不变,其新功能Feature C存在于版本B及更高版本中,而功能C仅存在于版本B中。版本C是开发人员面临的真正问题。因此,他们篡改了使用的版本,并编译了软件以仅使用该版本。在这种特定情况下,相同版本(例如2005年2月,2005年3月)的多个版本的C ++可再发行版本是可能的。
Ramhound

3

原因是它们不是同一件事。首先,您需要了解MSVC ++的每个版本都附带其自己的运行时库版本。也有32位和64位版本。另外,还有一些Service Pack带来了运行时库的更新版本。

如果您有10个安装,可以列出它们的名称吗?我不认为您应该拥有超过4个(2005年为32位和64位,2008年为相同)。Service Pack应该替换未更新的版本。


1
我相信这是正确的-我知道只有4个,并且这里的改进是它们现在可以并排安装。所需的构建取决于应用程序是静态还是动态链接到编译应用程序时使用的运行时。这些可以和平共处并且相对较小。
jtreser 2010年

VS2010多+2!但是,如果OP有10个,那就太多了。
AndrejaKo 2010年

好吧,诚然,我还没有数过。在工作的机器上,我有两个(2008 32位和64位,均为9.0​​.something)。我也会在家数。
Tomalak 2010年

3
我列出了12个。2005(2)(未列出规格或版本)2008(8)x32 / x64 9.0.21022,9.0.30729.17,9.0.30729.4148,9.0.30729.6161 2010(2)x32 / x64 10.0.40219-
达伦·霍尔

1
@DarrenHall-通常有那么多。每个版本都是不同的,并且您有针对这些特定版本的应用程序。
拉姆猎犬,2013年

1

C ++可再发行文件的版本很多,除非您确切地知道哪个程序将使用该文件,甚至删除其中一个,并且除非重新安装,否则使用它的每个程序都将永久禁用。

那些安装了许多程序的人将拥有许多版本。Microsoft允许重新分发它,因此开发人员可以每次为您弹出其中一个代码,而不是每次都发明新代码。

它们很小,不足以担心。其中许多文件只有KB,一些文件只有MB,并且比GB的程序更好。

我知道在其中看到很多(我有21个)很令人高兴,但是不理会它们,如果删除它们,您的程序将关闭。如果程序开发人员也为单个程序标记了它们,那也很好,但是如果这样做,您将拥有数百个标签。现在,程序会背负它们,这使程序可以使用新旧代码。

我拥有计算机网络学位。我不会告诉您要与您的计算机做任何事情,我不会对自己的计算机做任何事情

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.