Partager via


Comment : créer des règles de validation de fonctionnalité et de package personnalisées pour les solutions SharePoint

Vous pouvez créer des règles de validation personnalisées pour vérifier le package de solution généré par Visual Studio. Vous pouvez exécuter la validation complète sur une fonctionnalité ou un package entier en sélectionnant Valider dans le menu contextuel d'un package ou d'une fonctionnalité dans l'Explorateur de package. La validation partielle est exécutée lorsque vous ajoutez de nouveaux éléments de projet SharePoint ou de nouvelles fonctionnalités au projet, afin de vérifier la validité de l'état du package ou de la fonctionnalité.

Pour créer une règle de validation de package personnalisée

  1. Créez un projet Bibliothèque de classes.

  2. Ajoutez des références aux assemblys suivants :

    • Microsoft.VisualStudio.SharePoint

    • System.ComponentModel.Composition

  3. Créez une classe qui implémente l'une des interfaces suivantes :

  4. Ajoutez l'attribut System.ComponentModel.Composition.ExportAttribute à la classe. Cet attribut permet à Visual Studio de découvrir et de charger votre règle de validation. Communiquez le type IPackageValidationRule or IFeatureValidationRule au constructeur de l'attribut.

Exemple

L'exemple de code suivant montre comment créer une règle de validation de fonctionnalité personnalisée.

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

Compilation du code

Cet exemple nécessite des références aux assemblys suivants :

  • Microsoft.VisualStudio.SharePoint.

  • System.ComponentModel.Composition.

Déploiement de l'extension

Pour déployer l'extension, créez un package d'extension Visual Studio (VSIX) pour l'assembly et tous les autres fichiers que vous voulez distribuer avec l'extension. Pour plus d'informations, consultez Déploiement d'extensions pour les outils SharePoint dans Visual Studio.

Voir aussi

Autres ressources

Extension de la création de packages et du déploiement SharePoint