ICE35

ICE35 は、キャビネット ファイルに格納されている圧縮ファイルを含むコンポーネントが、ソースから実行するように設定されていないことを検証します。 Windows インストーラー 2.0 以降では、この制限が削除されました。

ICE35 は、Media テーブルの Cabinet 列に対してクエリを実行して、どのファイルが圧縮され、キャビネット ファイルに格納されているかを判断します。 File テーブルに対してクエリを実行して、これらのファイルがどのコンポーネントに含まれているかを特定します。 最後に、Component テーブルをチェックして、ソースから実行のビットが Attributes 列に設定されているかどうかを判断します。

結果

Component テーブルの Attributes 列で msidbComponentAttributesSourceOnly ビットが設定されたコンポーネントに属するキャビネット ファイルに格納されている圧縮ファイルがある場合、ICE35 はエラー メッセージを投稿します。 Windows インストーラー 2.0 以降、これはエラーから警告メッセージに変更されます。 Windows インストーラー 2.0 以降のみをサポートするパッケージでは、概要情報ストリームの PID_PAGECOUNT プロパティが 200 以上の値に設定されています。

Component テーブルの Attributes 列で msidbComponentAttributesOptional ビットが設定されたコンポーネントに属するキャビネット ファイルに格納されている圧縮ファイルがある場合、ICE35 は警告メッセージを投稿します。 この警告メッセージは、Windows インストーラー 2.0 以降で削除されました。

コンポーネント内の複数のファイルがキャビネット ファイル内にある場合、ICE35 は、ソースから実行のビットが設定されたファイルごとにエラーを報告します。

ICE35 は、Windows インストーラー バージョン 2.0 より前のバージョンを使用している場合に、次のエラーと警告を報告します。

ICE35 エラー 説明
エラー: コンポーネント Component3 は、メンバー ファイル 'File3' が圧縮されているため、[ソースから実行] のみにすることができません。 キャビネット ファイルに格納されている圧縮ファイルがあり、このファイルが Component テーブルの Attributes 列に SourceOnly ビットが設定されたコンポーネントに属しています。 このエラーを修正するには、Component2 の Attributes 値の下位 2 ビットを "00" (ローカルのみ) に変更するか、CAB ファイルから File4 を削除します。
エラー: コンポーネント Component3 は、メンバー ファイル 'File3' が圧縮されているため、[ソースから実行] のみにすることができません。 キャビネット ファイルに格納されている圧縮ファイルがあり、このファイルが Component テーブルの Attributes 列に SourceOnly ビットが設定されたコンポーネントに属しています。 コンポーネント内のファイルはすべて同じメディアから生成される必要がないため、ICE35 はキャビネット内のコンポーネント内のファイルごとにエラーを報告します。
このエラーを修正するには、Component2 の Attributes 値の下位 2 ビットを "00" (ローカルのみ) に変更するか、CAB ファイルから File4 を削除します。

 

Media テーブル (一部)

DiskID LastSequence Cabinet
1 2  
2 4 One.cab
3 5 #Two.cab

 

File テーブル (一部)

ファイル Component_ シーケンス
File1 Component1 1
File2 Component2 2
File3 Component2 3
File4 Component3 4
File5 Component3 5

 

Component テーブル (一部)

コンポーネント 属性
Component1 0
Component2 2
Component3 1

 

Shortcut テーブル (一部)

ショートカット Icon_
Shortcut1 Icon2

 

ファイルは、概要情報ストリームWord Count Summary プロパティを使用して圧縮済みとマークすることもできます。

ICE リファレンス