文件成本计算

成本计算是确定安装的总磁盘空间要求的过程。 在文件成本计算过程中计算的元素包括安装或删除文件的磁盘空间量,以及注册表项、快捷方式和其他杂项文件占用的磁盘空间量。 计划覆盖的现有文件也会在磁盘成本总计中计算。

总成本按组件累积,由三个独立的部分组成:本地成本、源成本和删除成本。 这些部分对应于当组件在本地安装、安装为从源媒体运行或删除时产生的磁盘成本。

涉及安装文件成本的所有计算都取决于要安装或删除文件的磁盘卷。 每次与组件关联的目录更改时,都必须重新计算该组件控制的安装文件的成本。 例如,由于目录更改可能还意味着卷更改,因此必须重新计算群集的文件大小。 此外,必须检查新目录以确定是否必须考虑任何可能被覆盖的现有文件。

调用 CostInitialize 操作之后,必须调用 FileCost 操作。 CostInitialize 操作初始化安装程序的内部例程,这些例程可动态计算与标准安装操作相关的磁盘成本。 此时不会执行其他动态成本计算。

接下来,必须调用 CostFinalize 操作。 此操作将完成所有成本计算,并使成本计算数据可通过 Component 表获得。

CostFinalize 操作完成执行后,Component 表将完全初始化,并且可以根据需要启动包含 SelectionTree 控件的用户界面对话框序列。 用户界面对话框可以提供将 Feature 表中任何功能的选择状态或目标目录更改为用户的选项。 当组件的选择状态发生更改时,该过程类似;但是,在这种情况下,仅重新计算已更改组件的动态成本。

用户完成在用户界面中选择功能后,应调用 InstallValidate 操作。 此操作将验证成本归属的所有卷是否可提供足够的空间用于安装。