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 |