为什么Visual Studio更新的安装时间比Visual Studio本身要长得多?

时间:2015-05-20 00:04:14

标签: visual-studio-2012 visual-studio-2013

最近,我有安装Visual Studio 2012和2013并安装各自的Update 4的经验。

在这两种情况下,基础Visual Studio安装所花费的时间(至少是Update 4的一半)要少得多。

这真让我感到困惑,因为首先Update 4比基础Visual Studio小得多。

其次,我的直观理解是,根据定义,更新应该只是一个补丁,不应该花费比实际软件本身更长的时间。

在安装更新的两种情况下,我都注意到安装程序浪费了大量时间“保存还原点”,这些还原点是否是罪魁祸首?

1 个答案:

答案 0 :(得分:3)

好问题。如您所知,安装更新只是安装差异,因此您可能会认为它比新的“绿地”安装更快。

首先,重要的是要记住这些更新是巨大的。我们大约每三个月发布一次,因此这包含我们能够潜入更新的错误修复和新功能工作。因此,虽然补丁只包含不同的DLL,但单行更改将需要一个全新的DLL。如果某个内部方法的签名发生了变化,那么现在所有的调用者都必须进行更改。您可以很快看到单线程如何容易成为几百千字节的补丁。

(我们的补丁包括新二进制文件的完整副本,而不是采用旧二进制文件的补丁,只更改少数(?)更改的字节。)

其次,更新安装过程 crazy 关于尝试防止更新安装破坏您的安装。 (因此更新成功或者它可以回滚到上一个已知的良好状态。)这意味着,例如,在写下新DLL之前,更新将验证您的现有安装是否处于良好状态。相比之下,安装新版本的VS只是编写数据而无需验证。诚然,这是次要的,但确实增加了。

另外,正如您所知,恢复点创建有点昂贵。同样,目标是让您更新以使您回到以前的位置并避免一些古怪的半安装状态,其中VS不起作用,您无法完成升级降级。

这就是我们做恶梦的场景(在发布结束时,有时是字面意思。)