アクティブ化の依存関係と範囲
最終更新日: 2010年3月3日
適用対象: SharePoint Foundation 2010
機能のアクティブ化の依存関係は、2 つの機能間の関係における要件を表します。アクティブ化の依存関係は、同じ範囲の複数の機能に対して、または上位の範囲の複数の機能に対して表すことができます。クロス範囲のアクティブ化の依存関係は、特定の範囲の機能が、範囲の異なる別の機能に依存している場合に発生します。クロス範囲のアクティブ化の依存関係の例として、Web サイトの範囲の機能が、サイト コレクションの範囲の機能に依存している場合があります。
通常、アクティブ化の依存関係は 2 つの目的に使用します。
機能のグループ化の概念 1 つの機能をアクティブ化すると、他の機能もアクティブ化できます。たとえば、既定の "チーム グループ作業" 機能 (%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES\TeamCollab にある) をアクティブ化すると、アクティブ化の依存関係を使用して他のさまざまな機能がアクティブ化されます。チーム グループ作業機能をアクティブ化すると、その機能に依存する機能がアクティブ化され、指定したリスト テンプレートが使用可能になります。機能を非アクティブ化すると、その機能に依存する機能は、他の機能から依存されてない場合は非アクティブになり、リスト テンプレートは使用不可になります。
機能リソースの保証 リソース (たとえば、コンテンツ タイプ) を含むサイト コレクションの機能と、実装を含む Web サイトの機能が必要な場合があります。アクティブ化の依存関係を利用して、両方の機能を確実にアクティブ化することができます。
アクティブ化の依存関係のルール
アクティブ化の依存関係は、循環依存関係や、パフォーマンスを制約する依存関係の連鎖などを避けるために、特定のルールに従っている必要があります。
同じ範囲のルール
フィーチャーが同じ範囲の別のフィーチャーに依存しており、最初のフィーチャーがアクティブ化済みで 2 番目のフィーチャーがアクティブ化されていない場合、Microsoft SharePoint Foundation は 2 番目のフィーチャーをアクティブ化します。
フィーチャーが非アクティブ化される場合、同じ範囲でアクティブ化の依存関係にある最後の表示可能フィーチャーが非アクティブ化されると、SharePoint Foundation は、依存関係にある非表示のフィーチャーを非アクティブ化します。
クロス範囲のルール
依存先のフィーチャーの方が制約された範囲にある場合、クロス範囲のアクティブ化の依存関係はサポートされません。たとえば、サイト コレクションを範囲とするフィーチャーは、Web サイトを範囲とするフィーチャーに対してアクティブ化の依存関係を持つことはできません。
依存先のフィーチャーが表示可能でない場合、複数の範囲にわたるフィーチャーのアクティブ化の依存関係はサポートされません。つまり、Web サイトを範囲とするフィーチャーが、ユーザー インターフェイスで表示可能でないサイト コレクションを範囲とするフィーチャーに依存することはできません。
依存先の機能がアクティブ化されていない場合、その機能に依存する機能のアクティブ化は失敗します。たとえば、Web サイトを範囲とする機能が、サイト コレクションを範囲とするアクティブ化されていない機能に依存している場合、Web サイトを範囲とする機能 (または、Web サイトを範囲とする機能を含むサイト定義) のアクティブ化は失敗します。
一般的な規則
依存関係が有効に機能する深さは 1 レベルのみです。依存関係の連鎖はサポートされません。SharePoint Foundation では、最後の表示可能フィーチャーが依存関係にある 2 番目の表示可能フィーチャーが、さらに 3 番目の表示可能フィーチャーに依存しているような、複数レベルのアクティブ化の依存関係をサポートしません。ただし、表示可能フィーチャーが 2 番目の表示可能フィーチャーに依存し、その 2 番目のフィーチャーが非表示のフィーチャーに依存している場合、SharePoint Foundation は、複数レベルのアクティブ化の依存関係をサポートします。
ライセンス認証の依存関係は非表示または表示可能なフィーチャーに対して設定できますが、非表示のフィーチャーはアクティブ化の依存関係を持つことはできません。Feature 要素の Hidden 属性によって、フィーチャーがユーザー インターフェイスに表示されるかどうかが決定します。
ある特定の機能に対して複数の機能が依存関係にある場合は、依存している機能のいずれかが、必要な機能の依存関係がないまま残る可能性があることに注意してください。たとえば、サイト コレクションを範囲とする表示可能な機能 B があるとします。機能 B は、サイト コレクションを範囲とする非表示の機能 A に依存しています。そして、Web サイトを範囲とする表示可能な機能 C という 3 つ目の機能も、機能 A に依存しています。機能 B を非アクティブにすると、機能 A も非アクティブになり、したがって機能 C は、必要な機能の依存関係がないまま残ります。