Share via


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

  1. Cree un proyecto de biblioteca de clases

  2. Agregue referencias a los siguientes ensamblados:

    • Microsoft.VisualStudio.SharePoint

    • System.ComponentModel.Composition

  3. Cree una clase que implemente una de las siguientes interfaces:

  4. 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.

Vea también

Conceptos

Extender el empaquetado e implementación de SharePoint