Cómo: Crear reglas de validación de la característica y el paquete personalizados para las soluciones de SharePoint
Puede crear reglas de validación personalizadas para comprobar el paquete de solución generado por Visual Studio.Puede realizar una validación completa de toda una característica o paquete seleccionando Validar en el menú contextual de un paquete o característica en el Exploradorde empaquetado.Cuando se agregan nuevos elementos de proyecto o características de SharePoint al proyecto para determinar si el paquete o la característica tendrían un estado válido, se realiza una validación parcial.
Para crear una regla de validación de paquetes personalizada
Cree un proyecto de biblioteca de clases
Agregue referencias a los siguientes ensamblados:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Cree una clase que implemente una de las siguientes interfaces:
Para crear una regla de validación de paquetes, implemente la interfaz IPackageValidationRule.
Para crear una regla de validación de características, implemente la interfaz IFeatureValidationRule.
Agregue System.ComponentModel.Composition.ExportAttribute a la clase.Este atributo permite que Visual Studio detecte y cargue la regla de validación.Pase el tipo IPackageValidationRule o IFeatureValidationRule al constructor del atributo.
Ejemplo
En el ejemplo de código siguiente se muestra cómo se crea una regla de validación de características personalizada.
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.");
}
}
}
}
Compilar el código
Para este ejemplo se requieren referencias a los siguientes ensamblados:
Microsoft.VisualStudio.SharePoint.
System.ComponentModel.Composition.
Implementar la extensión
Para implementar la extensión, cree un paquete de extensión (VSIX) de Visual Studio para el ensamblado y el resto de archivos que desee distribuir con la extensión.Para obtener más información, vea Extensiones de implementación para las Herramientas de SharePoint en Visual Studio.