ICE67

ICE67 では、アドバタイズされていないショートカットのターゲットがショートカット自体と同じコンポーネントに属していること、またはターゲット コンポーネントの属性によってインストールの場所が変更されないことを確認します。

ICE67 によって報告された警告またはエラーの修正に失敗すると、ターゲット コンポーネントの状態が変更されてソース コンポーネントが変更されない場合にショートカットが無効になる可能性があります。 たとえば、ターゲット ファイルのコンポーネントがソースから実行されるように設定されている場合、コンポーネントをローカルに変更する再インストールにより、ショートカットが含まれるコンポーネントは再インストールされません。 したがって、ショートカットは無効な場所を指します。

場合によっては、ショートカットに別のコンポーネントを使用することは避けられないことに注意してください。 たとえば、ショートカットがユーザー プロファイルに作成され、ファイルがプロファイル以外のディレクトリにインストールされている場合、両方のデータに同じコンポーネントを使用できない可能性があります。 (これにより、ICE57 で説明されているようなマルチユーザー シナリオでエラーが発生します)。 この場合は、アドバタイズされたショートカットを使用して目的の動作を実現することも、単にターゲット コンポーネントでソースから実行からローカルに変更できないようにすることもできます。

結果

アドバタイズされていないショートカットのターゲットがショートカット自体と同じコンポーネントに属していない場合、またはターゲット コンポーネントの属性によってインストール場所が変更されないことが保証されない場合、ICE67 ではエラーまたは警告を返します。

ICE67 では、示されている例に関する次の警告とエラーを報告します。

The shortcut 'Shortcut1' is a non-advertised shortcut with a file target. The shortcut and target are installed by different components, and the target component can run locally or from source.

Shortcut1 は Component2 によってインストールされますが、ターゲット ファイル File1 は component1 によってインストールされます。 ターゲット コンポーネントは省略可能とマークされます (つまり、ローカルまたはソースから実行にできます)。 問題を引き起こす可能性のある状況の 1 つは、Component1 でソースから実行からローカルに変更された場合です。 これにより、Shortcut1 は無効な場所を指すようになります。

この警告を修正するには、ショートカットを Component1 の一部としてインストールするか、Component1 を LocalOnly または SourceOnly としてマークします。

File テーブル (一部分)

ファイル Component_
File1 Component1

 

Shortcut テーブル (一部)

ショートカット Component_ 移行先
Shortcut1 Component2 [#File1]

 

Component テーブル (一部)

コンポーネント 属性
Component1 2

 

ICE リファレンス