방법: SharePoint 솔루션에 대한 사용자 지정 기능 및 패키지 유효성 검사 규칙 만들기

사용자 지정 유효성 검사 규칙을 만들어 Visual Studio에서 생성된 솔루션 패키지를 확인할 수 있습니다. 패키징 탐색기에 있는 패키지나 기능의 상황에 맞는 메뉴에서 유효성 검사를 선택하여 전체 기능 또는 패키지에 대해 모든 유효성 검사를 수행할 수 있습니다. 프로젝트에 새 SharePonit 프로젝트 항목이나 기능을 추가하는 경우에는 부분 유효성 검사를 수행하여 패키지나 기능이 유효한 상태에 있는지 확인할 수 있습니다.

사용자 지정 패키지 유효성 검사 규칙을 만들려면

  1. 클래스 라이브러리 프로젝트를 만듭니다.

  2. 다음 어셈블리에 대한 참조를 추가합니다.

    • Microsoft.VisualStudio.SharePoint

    • System.ComponentModel.Composition

  3. 다음 인터페이스 중 하나를 구현하는 클래스를 만듭니다.

  4. 클래스에 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 도구에 대한 확장 배포를 참조하십시오.

참고 항목

기타 리소스

SharePoint 패키징 및 배포 확장