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
Créez un projet Bibliothèque de classes.
Ajoutez des références aux assemblys suivants :
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Créez une classe qui implémente l'une des interfaces suivantes :
Pour créer une règle de validation de package, implémentez l'interface IPackageValidationRule.
Pour créer une règle de validation de fonctionnalité, implémentez l'interface IFeatureValidationRule.
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