プラグインフィルタリング
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
プラグインはSitecoreホストアプリケーションに個別の機能を提供します。1つ以上の機能を持つアプリケーションを展開しつつ、実行時にプラグインをフィルタリングすることで含めたり除外したりすることができます。Sitecoreホストの設定では、sitecorehost.xmlファイルの変更やコマンドラインの使用でプラグインをフィルタリングできます。
Sitecore、メインアプリケーションから読み込むプラグインでも、sitecoreruntimeフォルダを使って動的に読み込む場合でも、すべてのプラグインにフィルタリングを適用します。
デフォルトではフィルタリングは適用されず、すべてのプラグインが読み込まれます。
タグマッチング
タグマッチングは、sitecore.plugin.manifestファイルで定義されたタグに基づいてプラグインの包含または除外を可能にします。これらのタグはプラグインの作者によって提供されます。単一のタグで0つ以上のプラグインをマッチングできます。
構文論
タグをマッチングする際、タグ名に基づいて含めたり除外したりできます:
構文論
概要
+私のタグ
タグが付いたプラグインを含めてくださいmytag
-マイタグ
タグが付いているプラグインは除外してくださいmytag
構文の詳細
+文字や-文字の後の値は、任意の英数字文字列やピリオド文字(.)でできます。複数のプラグインが同じタグを持つ場合、マッチはすべてのプラグインに適用されます。フィルターは大文字を区別しないため(MyTagはmytagと同じです)。
例
この例では、タグTagBを持つプラグインを除外するようにsitecorehost.xmlファイルを編集します。タグ付けされたプラグイン以外はすべて読み込まれますTagB:
例
この例では、sitecorehost.xmlファイルを編集してタグTagAを持つプラグインのみを含ませます。タグ付けされたプラグイン以外は読み込みませんTagA:
プラグインマッチングは、どのプラグインがマッチングされるかをより正確に把握できます。プラグインマッチング構文を使うことで、IDとプラグインのバージョンでマッチングできます。プラグインマッチは0つか1つのプラグインしかマッチングできません。
構文論
プラグインをマッチングすると、プラグインIDやオプションでプラグインバージョンに基づいて含めたり除外したりできます。
構文論
概要
+@mypluginid
プラグインを含めてくださいMyPluginId
-@mypluginid
プラグインを除外するMyPluginId
+@mypluginid
.2.3バージョンにプラグインMyPluginIdを含めてください1.2.3
-@mypluginid
.2.3プラグインMyPluginIdを除外する1.2.3
構文の詳細
+文字や-文字の後の値は、任意の英数字文字列やピリオド文字(.)でできます。フィルターは大文字を区別しません(MyPluginIdはmypluginidと同じです)。
例
この例では、sitecorehost.xmlファイルを編集して、ID(名前)PluginBを持つプラグインを除外します。名前が一致するプラグイン以外はすべてのプラグインが読み込まれPluginB:
例
この例では、sitecorehost.xmlファイルを編集して、ID PluginOneを持つプラグインのみを含めるようにします。他のプラグインは読み込まれません。ただし、ID PluginOne:
例
この例では、ID PluginOneとバージョン1.0.0を持つプラグインを除外するためにsitecorehost.xmlファイルを編集します。
構成内の任意の数のフィルターを別々のキーとして提供できます。フィルターが適用されるとそれらは結合されます。以下の2つの構成は同じフィルターになります:
フィルターの各部分に別々のキーを提供することで、コマンドラインや環境sitecorehostファイルを通じて設定を上書きしやすくなります。
最初の例(上記)では、構成キーをパッチできるのはPlugins:Filters
。2つ目の例(下記)では、パッチが当てられた構成セクションを備えたsitecorehost.development.xmlファイルを提供できます:
1つ以上のプラグインを削除しても、他のプラグインがそれに依存している場合、エラーが発生します。これはカスタムプラグインフィルターが適用されたときに起こります。例えば、sitecorehost.xmlをPluginAを削除するように変更した場合、タグ付けはTagA:
しかし、別のプラグイン(PluginB)がそれに依存している場合、Sitecore Hostアプリケーションを実行するとエラーが出ます:
Unhandled Exception: Sitecore.Framework.Runtime.Plugins.MissingPluginDependencyException: Plugin dependency could not be found. Loading plugin PluginB : PluginB -> PluginA Missing dependency: PluginA
問題を解決するには、すべての依存プラグインを除外することができます:
アプリケーションを呼び出した際に、コマンドラインの引数を渡してプラグインフィルターを設定できます。アプリケーションが呼び出された後、configセクションへのパスと新しい値を提供することで設定オーバーライドを追加できます。例えば:
--Plugins:Filters
'-TagB -TagA'