Comment : créer des règles de validation de fonctionnalité et de package personnalisées pour les solutions SharePointHow to: Create Custom Feature and Package Validation Rules for SharePoint Solutions

Vous pouvez créer des règles de validation personnalisées pour vérifier que le package de solution généré par Visual Studio.You can create custom validation rules to verify the solution package generated by Visual Studio. Vous pouvez effectuer une validation complète sur une fonctionnalité complète ou un package en sélectionnant Validate dans le menu contextuel d’un package ou une fonctionnalité dans le PackagingExplorer.You can perform full validation on an entire Feature or package by selecting Validate from the context menu of a package or Feature in the PackagingExplorer. Validation partielle est exécutée lorsque vous ajoutez de nouveaux éléments de projet SharePoint ou des fonctionnalités pour le projet afin de déterminer si le Package ou la fonctionnalité est dans un état valide.Partial validation is performed when you add new SharePonit project items or Features to the project to determine if the Package or Feature would be in a valid state.

Pour créer une règle de validation de package personnaliséTo create a custom package validation rule

  1. Créez un projet de bibliothèque de classes.Create a class library project.

  2. Ajoutez des références aux assemblys suivants :Add references to the following assemblies:

    • Microsoft.VisualStudio.SharePointMicrosoft.VisualStudio.SharePoint

    • System.ComponentModel.CompositionSystem.ComponentModel.Composition

  3. Créez une classe qui implémente l’une des interfaces suivantes :Create a class that implements one of the following interfaces:

  4. Ajouter le ExportAttribute à la classe.Add the ExportAttribute to the class. Cet attribut permet à Visual Studio détecter et charger votre règle de validation.This attribute enables Visual Studio to discover and load your validation rule. Passez le IPackageValidationRule ou IFeatureValidationRule type au constructeur d’attribut.Pass the IPackageValidationRule or IFeatureValidationRule type to the attribute constructor.

ExempleExample

L’exemple de code suivant montre comment créer une règle de validation de fonctionnalité personnalisée.The following code example demonstrates how to create a custom Feature validation rule.

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 codeCompiling the Code

Cet exemple nécessite des références aux assemblys suivants :This example requires references to the following assemblies:

  • Microsoft.VisualStudio.SharePoint.Microsoft.VisualStudio.SharePoint.

  • System.ComponentModel.Composition.System.ComponentModel.Composition.

Déploiement de l’ExtensionDeploying the Extension

Pour déployer l’extension, créez un Visual StudioVisual Studio package d’extension (VSIX) pour l’assembly et tous les autres fichiers que vous souhaitez distribuer avec l’extension.To deploy the extension, create a Visual StudioVisual Studio extension (VSIX) package for the assembly and any other files that you want to distribute with the extension. Pour plus d’informations, consultez déploiement d’Extensions pour les outils SharePoint dans Visual Studio.For more information, see Deploying Extensions for the SharePoint Tools in Visual Studio.

Voir aussiSee Also

Extension de la création de packages et du déploiement SharePointExtending SharePoint Packaging and Deployment