SharePoint 2010과 Visual Studio 2010을 통한 WSP 배포 방법

[주의 사항]

본 블로그에 게시된 정보의 내용 (첨부 문서, 링크 등)은 작성일 현재 기준이며 예고없이 변경 될 수 있습니다.

또한, 참고용으로만 제공됨으로 Microsoft에 책임이 없음을 알려 드립니다. 반드시 적용 전 충분한 테스트를 진행하시기 바랍니다.

 
[요약]

SharePoint 2010 & Visual Studio 2010을 통한 배포 방법

 
[원인 또는 해결 방법]

다음은 SharePoint 2010 환경에서 Visual Studio 2010을 통한 배포 예시입니다.

1.      SharePoint 2010 서버에 Visual Studio 2010 설치

2.      설치 후 New -> Project -> Visual C# -> SharePoint -> 2010 -> Empty SharePoint Project 선택한 후 프로젝트 명을 입력하고 프로젝트를 생성합니다.

3.      해당 SharePoint 솔루션의 Trust Level을 선택합니다. Farm solution 또는 sandbox solution.

4.      프로젝트가 생성된 화면입니다.

5.      예시에서는 Custom Field Type을 개발하여 배포해보도록 하겠습니다. 생성된 프로젝트에 마우스 우클릭을 한 다음 Add -> Class를 클릭합니다.

6.      ‘Class’를 선택하고 Class Name을 입력한 후 [Add]를 클릭합니다.

7.      CS를 열어 아래와 같이 using 문에 Microsofot.SharePoint를 추가하고, Class를 아래와 같이 Public으로 변경해줍니다.

또한, 아래와 같이 SPFieldText를 상속합니다. 상속되는 타입은 여러가지 필드 형식을 선택할 수 있습니다. 예시에서는 테스트를 위해 일반적인 텍스트 필드 타입을 상속하도록 하였습니다.

[코드 예시]

8.      위와 같이 개발된 필드 타입은 SharePoint 2010의 경우 14\Template 폴더 아래에 위치한 ‘XML’ 폴더에 해당 필드 형식에 대한 XML이 존재하여야 합니다.

해당 XML 파일이름은 ‘fldtypes_’으로 시작하는 이름 규칙을 사용합니다.

해당 XML 내에는 TypeName, parent type name, type display name, corresponding class, assembly 등이 정의 됩니다.

해당 XM 파일을 배포하기 위해 Visual Studio 프로젝트 내에 추가하여야 합니다.

아래와 같이 프로젝트 -> Add -> SharePoint Mapped Folder-> Template 하위의 XML 폴더를 클릭하여 SharePoint에 매핑된 폴더를 프로젝트 내에 생성합니다.

아래와 같이 추가됩니다.

배포시에는 실제 SharePoint 서버의 아래 경로에 배포되게 됩니다.

9.      이제 해당 폴더내에 필드 형식이 정의된 XML 파일을 생성합니다.

Add -> New Item을 클릭한 뒤 XML 파일을 선택하고, 파일 명을 아래와 같이 ‘fldtypes_CustomField’로 명명합니다.

아래와 같이 생성되었습니다.

XML 내에는 아래 예시와 같이 필드 형식을 설정해 줍니다.

10.   이제 해당 Visual Studio Project를 빌드 한 후 Deploy를 클릭합니다.

현재 프로젝트의 Deploy 설정을 확인하려면, 해당 프로젝트를 클릭한 다음 F4를 클릭하여 아래와 같이 속성 창을 Open 합니다.

해당 프로젝트는 https://sp2010/이라는 SharePoint 주소로 배포하게 되어있습니다.

또한 빌드된 어셈블리(DLL)는 서버의 GAC(글로벌 어셈블리 캐시)에 배포되도록 설정 되어있습니다.

DLL 배포는 서버의 GAC 또는 SharePoint 응용 프로그램의 bin 폴더 중 하나에 배포되도록 설정할 수 있습니다.

GAC에 배포하는 경우 서버의 전역 어셈블리 캐시에 배포됨으로 서버에서 실행되는 모든 응용 프로그램에서 접근할 수 있습니다.

서버에서 [시작] -> [실행] -> ‘assembly’를 입력하면 아래와 같이 배포된 DLL을 확인할 수 있습니다.

Assembly Deployment Target을 WebApplication으로 설정한 경우 서버의 GAC에 DLL이 배포되지 않고, 아래와 같이 해당 웹 응용 프로그램의 Bin 폴더 안에 배포되게 됩니다.

이런 경우 해당 웹 응용 프로그램에서만 해당 DLL을 참조하여 사용할 수 있습니다.

11.   위 10번까지의 내용은 SharePoint 서버에 Visual Studio를 설치하여 직접 배포하는 방법이며, 일반적으로는 해당 방법을 사용하지 않고, DLL 및 개발된 내용이 패키징된 WSP 파일을 SharePoint의 솔루션 갤러리에 업로드 하여 자동 배포하게 됩니다.

 

12.   WSP 파일을 사용하여 배포하기 위해서 Visual Studio 프로젝트를 빌드한 후 패키징을 합니다.

프로젝트 우클릭 후 ‘Package’를 클릭합니다. 패키징이 완료되면, 다시 프로젝트를 우클릭하여 ‘Open Folder in Windows Explorer’를 클릭합니다.

탐색기가 열리면, bin 폴더를 찾아 open 하여 아래와 같이 wsp 파일을 확인하고 배포하기 위해 복사합니다.

13.   배포를 위해 SharePoint 중앙 관리 사이트에 접속합니다.

‘System Settings’ -> Farm Management 하위에 ‘Manage farm solution’을 클릭하여 기존에 배포된 WSP가 존재하는지 확인합니다.

14.   이제 생성된 wsp 패키지 파일을 배포하기 위해 SharePoint 2010 Management Shell을 관리자 권한으로 실행합니다.

그 다음 아래 명령어를 통해 wsp 파일을 SharePoint 중앙 관리 솔루션 갤러리에 등록합니다.

stsadm -o addsolution -filename c:\CustomFieldType.wsp

이렇게 등록된 WSP 패키지 파일이 아래와 같이 ‘System Settings’ -> Farm Management 하위에 ‘Manage farm solution’을 클릭하여 배포된 WSP가 존재하는지 확인합니다.

이제, 실제 SharePoint 사이트에 배포하기 위해 wsp 이름을 클릭하여 솔루션 속성 페이지로 이동합니다.

아래 ‘Deploy Solution’을 클릭하여 바로 배포하거나, ‘Remove Solution’을 클릭하여 배포된 솔루션을 원복시킬 수 있습니다.

예시에서는 ‘Deploy Solution’을 클릭하여 배포하였습니다.

배포 시간이 ‘Now’로 되어있는지 확인하고 [OK]를 눌러 배포합니다.

배포가 완료되면, 아래와 같이 해당 WSP의 상태가 Deployed로 변경됩니다.

15.   이제, SharePoint 사이트에 접속하여 해당 커스텀 필드가 정상적으로 적용되었는지 확인합니다.

테스트를 위해 SharePoint 리스트에 접속 후, 리스트 설정 메뉴를 클릭합니다.

Create Column을 클릭하면 아래와 같이 배포된 커스텀 필드를 확인하실 수 있습니다.

 

감사합니다.