Como: criar regras de validação de pacote e de recurso personalizado para 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 embalagemExplorer.Validação parcial é executada quando você adiciona novos itens de projeto de SharePonit ou recursos ao projeto para determinar se o pacote ou recurso seria em um estado válido.
Para criar uma regra de validação de pacote personalizado
Crie um projeto de biblioteca de classe.
Adicione referências para os seguintes conjuntos de módulos (assemblies) :
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Crie uma classe que implementa uma das seguintes interfaces:
Para criar uma regra de validação de pacote, implementar a IPackageValidationRule interface.
Para criar uma regra de validação do recurso, implementar a IFeatureValidationRule interface.
Adicionar o System.ComponentModel.Composition.ExportAttribute à classe.Este atributo permite que 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 (VSIX) da extensão do pacote para o assembly e outros arquivos que você deseja distribuir com a extensão.Para obter mais informações, consulte Implantação de extensões para as ferramentas de SharePoint no Visual Studio.