Gewusst wie: Erstellen von benutzerdefinierten Funktions- und Paketvalidierungsregeln für SharePoint-Lösungen

Zum Überprüfen des von Visual Studio generierten Lösungspakets können benutzerdefinierte Validierungsregeln erstellt werden. Sie können eine umfassende Validierung einer vollständigen Funktion oder eines vollständigen Pakets ausführen, indem Sie im Paket-Explorer im Kontextmenü einer Funktion oder eines Pakets die Option Überprüfen auswählen. Eine Teilvalidierung wird ausgeführt, wenn Sie dem Projekt neue SharePoint-Projektelemente oder -Funktionen hinzufügen, um zu ermitteln, ob das Paket oder die Funktion einen gültigen Zustand aufweist.

So erstellen Sie eine benutzerdefinierte Paketvalidierungsregel

  1. Erstellen Sie ein Klassenbibliotheksprojekt.

  2. Fügen Sie Verweise auf die folgenden Assemblys hinzu:

    • Microsoft.VisualStudio.SharePoint

    • System.ComponentModel.Composition

  3. Erstellen Sie eine Klasse, von der eine der folgenden Schnittstellen implementiert wird:

  4. Fügen Sie der Klasse System.ComponentModel.Composition.ExportAttribute hinzu. Anhand dieses Attributs kann die Validierungsregel von Visual Studio erkannt und geladen werden. Übergeben Sie den IPackageValidationRule-Typ oder den IFeatureValidationRule-Typ an den Attributkonstruktor.

Beispiel

Im folgenden Codebeispiel wird das Erstellen einer benutzerdefinierten Funktionsvalidierungsregel veranschaulicht:

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.");
            }
        }
    }
}

Kompilieren des Codes

Für dieses Beispiel sind Verweise auf die folgenden Assemblys erforderlich:

  • Microsoft.VisualStudio.SharePoint

  • System.ComponentModel.Composition

Bereitstellen der Erweiterung

Erstellen Sie für die Assembly und alle weiteren Dateien, die Sie mit der Erweiterung verteilen möchten, ein Visual Studio-Erweiterungspaket (VSIX-Datei), um die Erweiterung bereitzustellen. Weitere Informationen finden Sie unter Bereitstellen von Erweiterungen für die SharePoint-Tools in Visual Studio.

Siehe auch

Weitere Ressourcen

Erweitern von SharePoint-Packen und -Bereitstellen