방법: 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
확장 배포
확장을 배포하려면 어셈블리 및 확장과 함께 배포할 다른 모든 파일에 대한 VSIX(Visual Studio Extension) 패키지를 만듭니다.자세한 내용은 Visual Studio에서 SharePoint 도구에 대한 확장 배포를 참조하십시오.