ビルドの最適化

WiX は、キャビネットファイルの作成を ファイルの圧縮に関してスピードアップする 二通りの方式を 提供しています:

マルチスレッド化されたキャビネットファイル作成

Light.exe は、単一パッケージ中の複数キャビネットファイルをビルドするのに 複数のスレッドを 使用します。残念ながら、CAB API 自体はマルチスレッド化されていないので、単一のキャビネット ファイルは 1スレッドでビルドされます。Light.exe は 複数のキャビネットファイルがある時に 複数のスレッドを使うので、それぞれのキャビネットファイルは 1スレッドでビルドされます。

デフォルトでは Light.exe は、キャビネットファイルを作っている時 使用するスレッドの数として システムのプロセッサ/コアの数を使用します。Light.exe の -ct スイッチか .wixproj プロジェクト 中の CabinetCreationThreadCount プロパティを使って デフォルトをオーバーライドできます。

外部からと ( Media/@EmbedCab アトリビュートを使って) .msi パッケージに埋め込んでとの両方で 複数の キャビネットファイルを使う事ができます。

キャビネットファイル再利用

もし あまり変更されないファイルでセットアップをビルドするなら、それらのファイルの為の キャビネットファイルを一度生成して、そのあとで、リビルドとそれらを再圧縮するのに CPU 時間を 費やす事無く それらを再利用できます。

キャビネットファイル再利用に関わる Light.exe スイッチが2つあります:

-cc (.wixproj プロジェクト中の CabinetCachePath プロパティ)
値は、新しいキャビネットファイルを書くのと、-reusecab/ReuseCabinetCache が指定されている時 に、キャッシュされたキャビネットファイルを探す の両方に使用するパスです。
-reusecab (.wixproj プロジェクト中の ReuseCabinetCache プロパティ)
-cc/CabinetCachePath も指定されている時、WiX は リビルドされる必要のないキャビネット ファイルを 再利用します。

WiX は、以下を確保する事によってキャッシュされたキャビネットファイルはまだ有効で あると 自動的に実証します: