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
Creare un progetto Libreria di classi.
Aggiungere riferimenti agli assembly riportati di seguito:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Crea una classe che implementa una delle interfacce seguenti:
Per creare una regola di convalida per un pacchetto, implementare l'interfaccia IPackageValidationRule.
Per creare una regola di convalida per una funzionalità, implementare l'interfaccia IFeatureValidationRule.
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