ICEM02

ICEM02 は、すべてのモジュールの依存関係と除外が現在のモジュールに関連付けられていることを確認します。

マージ モジュールの ICEs は、パッケージ検証に使用される ICEs を含む .cub ファイルではなく、Mergemod.cub という名前のマージ モジュール .cub ファイルに格納されます。

結果

ICEM02 は、モジュール データベースが現在のモジュールに関連しない依存関係または除外を指定しようとすると、エラー メッセージを投稿します。 ICEM02 は、モジュール データベースが現在のモジュールを依存モジュールとして指定しようとした場合、または単体で除外されたモジュールとして指定しようとすると、エラー メッセージを投稿します。

例

ICEM02 は、次に示すデータベース エントリを含むモジュールに対して、次のエラー メッセージを投稿します。

The dependency OtherModule.GUID2.1033.OtherModule.GUID3.0 in the 
ModuleDependency table creates a dependency for an unrelated module. A 
module can only define dependencies for itself

This module is listed as depending on itself!

The exclusion OtherModule.GUID2.1033.OtherModule.GUID3.0 in the 
ModuleExclusion table creates an excluded module for an unrelated 
module. A module can only define exclusions for itself.

This module excludes itself from the target database!

ModuleSignature テーブルの

ModuleID 言語 バージョン
MyModule。GUID1 1033 1.0

 

moduleDependency テーブル の

ModuleID ModuleLanguage RequiredID RequiredLanguage RequiredVersion
OtherModule。GUID2 1033 OtherModule。GUID3 0 1.0
MyModule。GUID1 1033 MyModule。GUID1 1033 1.2

 

ModuleExclusion テーブル (部分)

ModuleID ModuleLanguage ExcludedID ExcludedLanguage
OtherModule。GUID2 1033 OtherModule。GUID3 0
MyModule。GUID1 1033 MyModule。GUID1 1033

 

マージ モジュール ICE は、ModuleDependency テーブルの最初の行が ModuleSignature テーブルで指定されている現在のモジュールに必要な依存関係を指定していないため、最初のエラーを投稿します。 モジュールの依存関係は、独自の ModuleDependency テーブルでのみ指定できます。 OtherModule の場合。現在のモジュールで GUID3が必要な は、行の最初の 2 つの列を ModuleSignature テーブルのデータに置き換えます。 OtherModule の場合。このモジュールで GUID3が不要な は、この行を削除します。

マージ モジュール ICE は、モジュール自体に依存関係を指定できないため、2 番目のエラーをポストします。

マージ モジュール ICE は、ModuleExclusion テーブルの最初の行が ModuleSignature テーブルで指定されている現在のモジュールに対して必要な除外を指定していないため、3 番目のエラーをポストします。 モジュールの除外は、独自の ModuleExclusion テーブルでのみ指定できます。 現在のモジュールで OtherModule が除外されている場合。GUID3、行の最初の 2 つの列を ModuleSignature テーブルのデータに置き換えます。 現在のモジュールが OtherModule を除外しない場合。GUID3、この行を削除します。

マージ モジュール ICE は、モジュールが自身を除外することを指定できないため、4 番目のエラーをポストします。

マージ モジュール ICE リファレンス の