Практическое руководство. Создание пользовательских правил проверки компонентов и пакетов для решений SharePoint
Для проверки пакета решения, сформированного Visual Studio, можно создавать пользовательские правила проверки.Полную проверку всего "Компонента" или пакета можно выполнить выбрав Проверить в контекстном меню пакета или "Компонента" в меню УпаковкаОбозреватель.Частичная проверка выполняется при добавлении новых элементов проекта SharePonit или "Компонентов" проекта для определения действительного состояния "Пакета" или "Компонента".
Создание пользовательского правила проверки пакета
Создайте проект библиотеки классов.
Добавьте ссылки на следующие сборки:
Microsoft.VisualStudio.SharePoint
System.ComponentModel.Composition
Создание класса, реализующего один из перечисленных интерфейсов:
Чтобы создать правило проверки пакета, реализуйте интерфейс IPackageValidationRule.
Чтобы создать правило проверки компонента, реализуйте интерфейс IFeatureValidationRule.
Добавьте к классу атрибут System.ComponentModel.Composition.ExportAttribute.Этот атрибут позволяет Visual Studio находить и загружать пользовательское правило проверки.Передайте конструктору атрибута тип IPackageValidationRule или IFeatureValidationRule.
Пример
В следующем примере кода показано как создать пользовательское правило проверки компонента.
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.");
}
}
}
}
Компиляция кода
Для этого примера требуются ссылки на следующие сборки:
Microsoft.VisualStudio.SharePoint.
System.ComponentModel.Composition.
Развертывание расширения
Чтобы развернуть расширение, создайте пакет расширения Visual Studio (VSIX) для сборки и всех остальных файлов, которые предположительно будут распространяться с расширением.Дополнительные сведения см. в разделе Разработка расширений для средств SharePoint в Visual Studio.