방법: 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 도구에 대한 확장 배포를 참조하십시오.