Como: Criar regras de validação de pacote e de recurso de personalizar soluções do SharePoint

Você pode criar regras de validação personalizada para verificar se o pacote da solução gerado pelo Visual Studio. Você pode executar a validação completa em um pacote ou de todo o recurso selecionando Validar no menu de contexto de um pacote ou recurso do embalagem Explorer. Validação parcial é executada quando você adiciona novos recursos ou itens de projeto de SharePonit para o projeto para determinar se o pacote ou recurso seria em um estado válido.

Para criar uma regra de validação de pacote personalizado

  1. Crie um projeto de biblioteca de classe.

  2. Adicione referências para os seguintes conjuntos de módulos (assemblies) :

    • Microsoft.VisualStudio.SharePoint

    • System.ComponentModel.Composition

  3. Crie uma classe que implementa uma das seguintes interfaces:

  4. Adicionar o System.ComponentModel.Composition.ExportAttribute para a classe. Este atributo permite Visual Studio descobrir e carregar sua regra de validação. Passar o IPackageValidationRule ou IFeatureValidationRule tipo para o construtor de atributo.

Exemplo

O exemplo de código a seguir demonstra como criar uma regra de validação personalizada do recurso.

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.");
            }
        }
    }
}

Compilando o código

Este exemplo requer referências aos assemblies seguintes:

  • Microsoft.VisualStudio.SharePoint.

  • System.ComponentModel.Composition.

Implantação da extensão

Para implantar a extensão, criar um Visual Studio pacote de extensão (VSIX) para o assembly e outros arquivos que você deseja distribuir com extensão. Para obter mais informações, consulte Implantar extensões para as ferramentas do SharePoint em Visual Studio.

Consulte também

Outros recursos

Implantação e estendendo empacotamento do SharePoint