ファイルのコスト計算

コスト計算は、インストールのディスク領域の合計要件を決定するプロセスです。 ファイルのコスト計算プロセスで計算される要素には、ファイルをインストールまたは削除するディスク領域の量と、レジストリ エントリ、ショートカット、その他のファイルによって占有されるディスク領域の量が含まれます。 上書きされる予定の既存のファイルも、ディスク コストの合計で計算されます。

合計コストはコンポーネントごとに累積され、ローカル コスト、ソース コスト、削除コストの 3 つの個別の部分で構成されます。 これらの部分は、コンポーネントがローカルにインストールされている場合、ソース メディアから実行するためにインストールされている場合、または削除された場合に発生するディスク コストに対応します。

ファイルのインストール コストに関係するすべての計算は、ファイルをインストールまたは削除するディスク ボリュームによって異なります。 コンポーネントに関連付けられているディレクトリが変更されるたびに、そのコンポーネントによって制御されるインストール ファイルのコストを再計算する必要があります。 たとえば、ディレクトリの変更はボリュームの変更を意味する場合もあるため、クラスター化されたファイル サイズを再計算する必要があります。 さらに、上書きされる可能性のある既存のファイルを考慮する必要があるかどうかを判断するには、新しいディレクトリを確認する必要があります。

CostInitialize アクションが呼び出されたら、FileCost アクションを呼び出す必要があります。 CostInitialize アクションでは、標準インストール アクションに関連するディスク コストを動的に計算するインストーラーの内部ルーチンを初期化します。 この時点では、他の動的コスト計算は行われません。

次に、CostFinalize アクションを呼び出す必要があります。 このアクションによってすべてのコスト計算が終了し、Component テーブルを介してコスト計算データが使用可能になります。

CostFinalize アクションの実行が完了すると、Component テーブルが完全に初期化され、必要に応じて SelectionTree コントロールを含むユーザー インターフェイス ダイアログ ボックスのシーケンスを開始できます。 ユーザー インターフェイス ダイアログ ボックスには、Feature テーブル内の任意の機能の選択状態または宛先ディレクトリをユーザーに変更するオプションが用意されている場合があります。 このプロセスは、コンポーネントの選択状態が変わるときと似ています。ただし、この場合、変更されたコンポーネントの動的コストのみが再計算されます。

ユーザーがユーザー インターフェイスで機能の選択を完了したら、InstallValidate アクションを呼び出す必要があります。 このアクションでは、コストが発生したすべてのボリュームにインストールに十分な領域があることを確認します。