Visual Studio 2010 SharePoint 프로젝트에 SharePoint 2010 사용자 지정 클레임 공급자 패키징
Visual Studio 2010을 사용하여 SharePoint 2010용 솔루션을 개발해 본 경험이 있다면 사용자 지정 클레임 공급자를 패키징할 때 한 가지 특이한 점이 있다는 것을 알고 계실 것입니다. Visual Studio 2010에서는 새 기능을 만든 후 기능을 마우스 오른쪽 단추로 클릭하고 이벤트 수신기 추가 메뉴만 선택하면 기능 이벤트 수신기를 손쉽게 추가할 수 있습니다. 이 기능은 구성 측면보다는 솔루션의 코딩 작업 측면에서 작업을 매우 쉽고 효율적으로 만드는 유용한 기능입니다. 이러한 분리는 이벤트 수신기가 기본적으로 SPFeatureReceiver에서 상속되어 추가되는 데서 기인합니다. 여러분 모두 잘 알고 있듯이 사용자 지정 클레임 공급자를 등록하는 데 사용되는 이벤트 수신기는 SPClaimProviderFeatureReceiver(https://blogs.technet.com/b/speschka/archive/2010/03/13/writing-a-custom-claims-provider-for-sharepoint-2010-part-1.aspx(영문일 수 있음))에서 상속되어야 합니다. 또한 Visual Studio에 기본 제공되는 SharePoint 스마트는 SharePoint 2010 프로젝트에 클래스를 추가하고 클래스에 기능을 연결하기만 하면 될 정도로 직관적인 방법을 제공하지는 않습니다. 이 작업을 더 쉽고 간단하게 수행하는 방법이 있습니다.
저는 일반적인 방식대로 작업을 처음 시작할 때부터 이 방법을 검토해 왔습니다. 사용자 지정 클레임 공급자를 작성했고 공급자를 설치할 해당 기능 수신기도 가지고 있습니다. 이 두 클래스는 단일 프로젝트에 포함되어 있습니다. 새 기능을 Visual Studio 2010에 패키징하여 제대로 작동하는지 확인하기로 결정했습니다. 다음은 제가 사용한 방법입니다.
1. 사용자 지정 클레임 공급자 프로젝트와 해당 이벤트 수신기를 처음 실행하여 등록한 다음 컴파일합니다. 컴파일된 어셈블리에서 어셈블리의 강력한 이름과 이벤트 수신기의 클래스 이름을 확인합니다.
2. 새 프로젝트를 솔루션에 추가하고, 프로젝트에 SharePoint 2010의 “빈 SharePoint 프로젝트” 서식 파일을 사용합니다. 팜 솔루션으로 배포되도록 프로젝트를 구성합니다.
3. 프로젝트에서 기능 노드를 마우스 오른쪽 단추로 클릭하고 기능 추가를 선택합니다. 기능의 범위를 팜으로 설정하고 자동으로 활성화되도록 설정합니다. 그렇지 않은 경우에는 필요에 맞게 기능 속성을 구성합니다. 이제부터가 중요합니다. – Visual Studio 속성 창에서 여기에 설명되어 있는 대로 기능에 대해 두 가지 속성을 구성합니다.
a. 수신기 어셈블리: 1단계에 설명된 어셈블리에 강력한 이름(예: MyClaimProvider.ClaimTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=edb00fee02fa0701)을 추가합니다.
b. 수신기 클래스: 1단계에서 작성한 사용자 지정 클레임 공급자의 클래스 이름(예: MyClaimProvider.ClaimTest.MyClaimsFeatureReceiver)을 추가합니다.
4. 컴파일한 사용자 지정 클레임 공급자 어셈블리를 패키징 솔루션을 통해 배포할 어셈블리 목록에 추가합니다. 이 작업을 수행하려면 Visual Studio 패키징 프로젝트에서 Package.package 노드를 두 번 클릭합니다. 고급 탭을 클릭합니다. 추가 단추를 클릭한 다음 기존 어셈블리 추가를 클릭합니다. 컴파일한 사용자 지정 클레임 공급자 어셈블리가 있는 위치를 찾은 후 Deployment Target: GlobalAssemblyCache를 선택된 상태로 둡니다. Deployment Target: GlobalAssemblyCache는 기본적으로 선택되어 있습니다. 확인 단추를 클릭하여 변경 내용을 저장한 다음 패키지 속성 창을 닫습니다. 여기서 한 가지 주목할 점은 저는 평상시 솔루션과 함께 배포할 다른 프로젝트의 컴파일된 어셈블리를 복사할 별도의 폴더를 패키징 프로젝트에 만든다는 것입니다. 패키지에 추가 어셈블리를 구성하려는 경우 패키징 프로젝트의 폴더에서 선택하기만 하면 됩니다. 다른 프로젝트에는 컴파일된 어셈블리를 패키징 프로젝트의 이 어셈블리 폴더로 자동으로 복사하는 빌드 후 스크립트를 추가해 두었습니다. 이 스크립트는 디버그 빌드인지 릴리스 빌드인지 관계없이 어셈블리를 복사하는 간단한 한 줄짜리 빌드 후 코드입니다. 이 코드를 사용하기 때문에 매번 어셈블리를 직접 추가할 필요가 없습니다. 이 스크립트는 다음과 같습니다.
copy "$(TargetPath)" ..\..\..\MyPackagingProject\GacFiles /Y
이제 패키지가 완성되었습니다. 패키지 프로젝트를 컴파일한 다음 프로젝트의 마우스 오른쪽 단추 클릭 메뉴에서 패키지 메뉴를 선택하기만 하면 됩니다. 그러면 배포 가능한 WSP 파일이 만들어집니다. 사용자 지정 클레임 공급자는 이 파일을 통해 자동으로 배포되도록 지정할 수 있습니다.
이 문서는 번역된 블로그 게시물입니다. 원본 문서는 Packaging A SharePoint 2010 Custom Claims Provider in a Visual Studio 2010 SharePoint Project를 참조하십시오.