Procedura: creare regole personalizzate per la convalida di funzionalità e pacchetti per le soluzioni SharePoint

È possibile creare regole di convalida personalizzate per verificare il pacchetto di soluzione generato in Visual Studio.Per eseguire la convalida completa di un'intera funzionalità o di un intero pacchetto, scegliere Convalida dal menu di scelta rapida di un pacchetto o di una funzionalità in Esplorapacchetti.La convalida parziale viene eseguita quando si aggiungono nuovi elementi di progetto SharePoint o nuove funzionalità al progetto, allo scopo di determinare se il pacchetto o la funzionalità ha uno stato valido.

Per creare una regola di convalida personalizzata per un pacchetto

  1. Creare un progetto Libreria di classi.

  2. Aggiungere riferimenti agli assembly riportati di seguito:

    • Microsoft.VisualStudio.SharePoint

    • System.ComponentModel.Composition

  3. Crea una classe che implementa una delle interfacce seguenti:

  4. Aggiungere l'oggetto System.ComponentModel.Composition.ExportAttribute alla classe.Questo attributo consente a Visual Studio di individuare e caricare la regola di convalida.Passare il tipo IPackageValidationRule o IFeatureValidationRule al costruttore dell'attributo.

Esempio

Nell'esempio di codice riportato di seguito viene illustrato come creare una regola di convalida personalizzata per una funzionalità.

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

Compilazione del codice

In questo esempio sono richiesti riferimenti agli assembly seguenti:

  • Microsoft.VisualStudio.SharePoint.

  • System.ComponentModel.Composition.

Distribuzione dell'estensione

Per distribuire l'estensione, creare un pacchetto Visual Studio Extension (VSIX) per l'assembly e qualsiasi altro file che si desidera distribuire con l'estensione.Per ulteriori informazioni, vedere Distribuzione di estensioni per gli strumenti di SharePoint in Visual Studio.

Vedere anche

Concetti

Estensione della creazione di pacchetti e della distribuzione di SharePoint