我所知道的几乎每一个设置一开始都会显示类似这样的内容:
有一段文字说道:
“计算空间需求”
这有时只持续几秒钟,有时会持续更长时间。
因为对我来说,检查可用磁盘空间相当于简单地调用fsutil volume diskfree c:
,最多需要一秒钟,所以该消息似乎是以下内容的委婉说法:
“我们在这里做一些事情,但不会告诉你是什么。”
我已经尝试过使用进程监控看看发生了什么,但没有发现什么重要的事情。
我能想到的:
- 提取 MSI 内容。
- 在注册表或文件系统中查找以前的安装。
- …
虽然对于所有打印“计算空间要求”的设置实际上在做什么可能没有通用的答案,但也许有一个经验法则。
(我的示例截图是随机从Markdown 编辑它使用WiX 工具集)
我的问题:
当安装程序很忙并写入“计算空间要求”时,在安装程序执行期间会发生什么?
答案1
它决定了必须安装多少程序,并决定了占用的磁盘空间大小。有几个因素,例如用户选择安装的功能以及当前系统的状态。
许多程序都依赖共享依赖项,但如果这些依赖项未随操作系统提供,或者提供这些库的不同版本,则应用程序可能必须自行安装它们。或者,可能是另一个程序已经安装了它。
这意味着安装程序对磁盘的实际影响可能相差很大。需要花费一些时间来搜索磁盘和注册表以确定系统中是否已有依赖项,因此 UI 会显示此消息来告诉您它正在做什么。
答案2
我认为这就像问,有多少种方法可以调出一杯马提尼酒?你说得完全正确。这取决于软件、编写者以及“他们”正在计算、搜索、收集或研究的内容……答案是肯定的。如果你安装同一个程序一次,然后卸载它,然后重新安装它,并计算每次安装所需的时间,那么可能需要两个截然不同的时间。你的电脑也有事件时间表。你也在做事情。你可能每天早上 8 点到达办公室,但可能需要不同的时间。然后,在计算机科学中,有一种叫做优先级的东西。
答案3
软件安装的基本要求之一是磁盘空间。
例如:
“计算空间需求”期间会发生什么?
当安装向导显示计算磁盘空间时,它会检查您是否具有软件所需的足够磁盘空间。
所有优秀的软件都会进行此项检查,以防止安装后出现不必要的错误。但它们执行的方式各不相同。
有些人会默默地做这件事,而有些人则喜欢向你展示一条消息。
看一下这个安装错误的例子:
(来源:趋势科技网站)