Visual Studio で生成されたソリューション パッケージを検証するために、カスタム検証規則を作成できます。 パッケージング エクスプローラーでパッケージまたはフィーチャーのコンテキスト メニューの [検証] をクリックすると、フィーチャーまたはパッケージの全体に対する完全検証を実行できます。 新しい SharePoint プロジェクト項目またはフィーチャーをプロジェクトに追加する場合に、パッケージまたはフィーチャーが有効な状態になるかどうかを確認するには、部分検証を実行します。
カスタムのパッケージ検証規則を作成するには
クラス ライブラリ プロジェクトを作成します。
次のアセンブリへの参照を追加します。
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
次のいずれかのインターフェイスを実装するクラスを作成します。
パッケージ検証規則を作成するには、IPackageValidationRule インターフェイスを実装します。
フィーチャー検証規則を作成するには、IFeatureValidationRule インターフェイスを実装します。
クラスに System.ComponentModel.Composition.ExportAttribute を追加します。 この属性によって、Visual Studio で検証規則を検出し、読み込むことができます。 この属性のコンストラクターに IPackageValidationRule 型または IFeatureValidationRule 型を渡します。
例
次のコード例は、カスタムのフィーチャー検証規則を作成する方法を示しています。
Imports Microsoft.VisualStudio.SharePoint
Imports Microsoft.VisualStudio.SharePoint.Validation
Imports System.ComponentModel.Composition
<Export(GetType(IFeatureValidationRule))> _
Public Class CustomFeatureValidationRule
Implements IFeatureValidationRule
Public Sub ValidateFeature(ByVal context As IFeatureValidationContext) _
Implements IFeatureValidationRule.ValidateFeature
For Each projectItem In context.Feature.ProjectItems
ValidateProjectItem(context, projectItem)
Next projectItem
End Sub
Public Sub ValidateProjectItem(ByVal context As IFeatureValidationContext, _
ByVal projectItem As ISharePointProjectItem) _
Implements IFeatureValidationRule.ValidateProjectItem
If projectItem.Name = "" Then
context.RuleViolations.Add( _
"CustomFeatureValidationRule001", _
ValidationRuleViolationSeverity.Warning, _
"SharePoint project items must have a name.")
End If
End Sub
End Class
using Microsoft.VisualStudio.SharePoint;
using Microsoft.VisualStudio.SharePoint.Validation;
using System.ComponentModel.Composition;
namespace Extension
{
[Export(typeof(IFeatureValidationRule))]
internal class CustomFeatureValidationRule : IFeatureValidationRule
{
public void ValidateFeature(IFeatureValidationContext context)
{
foreach (var projectItem in context.Feature.ProjectItems)
{
ValidateProjectItem(context, projectItem);
}
}
public void ValidateProjectItem(
IFeatureValidationContext context,
ISharePointProjectItem projectItem)
{
if (projectItem.Name == "")
{
context.RuleViolations.Add(
"CustomFeatureValidationRule001",
ValidationRuleViolationSeverity.Warning,
"SharePoint project items must have a name.");
}
}
}
}
コードのコンパイル
この例は、次のアセンブリへの参照を必要とします。
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
拡張機能の配置
拡張機能を配置するには、アセンブリと、拡張機能に同梱する必要のあるその他のファイルを提供するための Visual Studio Extension (VSIX) パッケージを作成します。 詳細については、「Visual Studio での SharePoint ツールの拡張機能の配置」を参照してください。