기존 SharePoint 사이트에서 항목 가져오기
SharePoint 솔루션 패키지 가져오기 프로젝트 템플릿을 사용하면 기존 SharePoint 사이트에 있는 콘텐츠 형식 및 필드와 같은 요소를 새 Visual Studio SharePoint 솔루션에서 다시 사용할 수 있습니다. 수정 없이도 가져온 솔루션을 대부분 실행할 수 있지만 몇 가지 제한 및 문제를 고려해야 합니다. 항목을 가져온 후 수정한 경우에는 특히 주의해야 합니다.
참고 항목
재사용 가능한 워크플로를 가져오려면 재사용 가능한 워크플로 가져오기 프로젝트 템플릿을 사용합니다. 자세한 내용은 재사용 가능한 워크플로 가져오기에 대한 지침을 참조하세요.
지원되는 SharePoint 솔루션
Visual Studio 2012에서는 SharePoint Foundation 및 SharePoint Server에서 생성된 솔루션을 가져올 수 있습니다.
Visual Studio 2012에서는 다음 애플리케이션에서 생성된 솔루션을 가져올 수 없습니다.
Windows SharePoint Services 3.0
Microsoft Office SharePoint Server 2007
Visual Studio 2008
Microsoft SharePoint Designer 2007
Visual Studio 2010
이러한 애플리케이션에서 만든 솔루션을 가져올 수 있는 경우도 있지만 기능이 테스트되지 않아 지원되지 않습니다.
항목 가져오기 제한 사항
기존 .wsp 파일에서 대부분의 SharePoint 항목을 가져올 수 있지만, 다음 항목은 지원되지 않으며 제대로 작동하려면 수정해야 할 수도 있습니다.
BDC 엔터티
코드 워크플로 연결 요소
코드 워크플로
비주얼 웹 파트(.ascx)
웹 서비스(.asmx)
콘텐츠 형식 바인딩
이벤트 수신자
목록 정의(템플릿)
사이트 정의
SharePoint Foundation 또는 SharePoint Server에서 솔루션을 내보낼 때 해당 항목은 자동으로 .wsp 파일에서 제외됩니다. 그러나 지원되지 않는 도구에서 생성된 다른 .wsp 파일에는 이러한 항목이 포함될 수 있습니다. 자세한 내용은 이 항목의 앞부분에 나오는 "지원되는 SharePoint 솔루션"을 참조하세요.
솔루션을 가져올 때 수행되는 작업
SharePoint 솔루션 패키지 가져오기 템플릿을 사용하여 솔루션을 가져오면 Visual Studio는 .wsp 파일 콘텐츠를 모두 복사하고 가져온 요소와 해당 파일 간의 연결 및 참조를 가능한 많이 유지하고 조정하려고 합니다.
가져온 항목은 모두 솔루션 탐색기의 해당 폴더에 복사됩니다. 예를 들어 콘텐츠 형식은 콘텐츠 형식 폴더 아래 나타나고 목록 인스턴스는 목록 인스턴스폴더 아래 나타납니다. 가져온 항목과 연결된 파일도 해당 항목 폴더로 복사됩니다. 예를 들어 가져온 목록 인스턴스에는 모듈, 양식 및 ASPX 페이지가 포함됩니다.
종속 항목
SharePoint 솔루션 패키지 가져오기 마법사에서 항목을 선택했지만 종속 항목을 선택하지 않은 경우 가져오기 전에 종속 항목도 선택해야 한다는 메시지 상자가 나타납니다.
기능이란?
SharePoint Designer 사용자는 기능이라고 하는 예상치 못한 파일을 솔루션 탐색기의 가져온 솔루션에 표시된 것을 확인할 수 있습니다. SharePoint Designer 솔루션에 기능이 있었지만 보기에 표시되지 않습니다. 이제 Visual Studio에 기능이 표시됩니다.
기능은 SharePoint 항목의 컨테이너입니다. 각 기능은 콘텐츠 형식 및 목록 정의 등 포함된 각 항목에 대한 참조를 유지합니다. 솔루션을 가져올 때 Visual Studio에서는 가져온 모든 요소의 기능을 설정하고 파일에 대한 기능-요소 관계를 유지하려고 합니다. 참조를 확인할 수 없는 모든 파일은 기타 가져온 파일 폴더에 나타납니다.
기능에 대한 자세한 내용은 SharePoint 솔루션 개발 및 기능 작업을 참조하세요.
특수 사례 처리
Visual Studio에서 종속 파일이 있는 항목을 조정할 수 없는 경우가 있습니다. Visual Studio에서 확인할 수 없는 모든 파일은 Other Imported Files 폴더에 나타납니다. 또한 솔루션과 함께 배포되지 않도록 DeploymentType 속성이 NoDeployment 로 설정됩니다.
예를 들어 목록 정의 ExpenseForms를 가져오면 솔루션 탐색기의 목록 정의 폴더 아래에 해당 이름의 목록 정의가 Elements.xml 및 Schema.xml 파일과 함께 나타납니다. 그러나 관련 ASPX 및 HTML 양식은 기타 가져온 파일 폴더의 ExpenseForms 폴더 아래 배치될 수 있습니다. 가져오기를 완료하려면 솔루션 탐색기 에서 이러한 파일을 ExpenseForms 목록 정의로 이동하고 각 파일의 DeploymentType 속성을 NoDeployment 에서 ElementFile로 변경합니다.
이벤트 수신기를 가져오면 Elements.xml 파일이 올바른 위치에 복사되지만, 어셈블리가 솔루션과 함께 배포되도록 솔루션 패키지에 어셈블리를 수동으로 포함해야 합니다. 이를 수행하는 방법에 대한 자세한 내용은 방법: 추가 어셈블리 추가 및 제거를 참조하세요.
워크플로를 가져오면 InfoPath 양식이 기타 가져온 파일 폴더에 복사됩니다. 웹 템플릿이 포함된 .wsp 파일이 솔루션 탐색기의 시작 페이지로 설정됩니다.
필드 및 속성 모음 가져오기
여러 필드가 있는 솔루션을 가져오면 솔루션 탐색기에서 필드 노드 아래의 단일 Elements.xml 파일에 모든 개별 필드 정의가 병합됩니다. 마찬가지로, 모든 속성 모음 항목은 PropertyBags 노드 아래의 Elements.xml 파일에 병합됩니다.
SharePoint에서 필드는 텍스트, 부울 또는 조회 같은 지정된 데이터 형식의 열입니다. 자세한 내용은 구성 요소: 열 및 필드 형식을 참조하세요. 속성 모음을 사용하면 팜부터 SharePoint 사이트의 목록에 이르기까지 SharePoint의 개체에 속성을 추가할 수 있습니다. 속성 모음은 속성 이름 및 값의 해시 테이블로 구현됩니다. 자세한 내용은 SharePoint 구성 관리 또는 SharePoint 속성 모음 설정을 참조하세요.
프로젝트에서 항목 삭제
SharePoint 솔루션의 대부분 항목에는 하나 이상의 종속 항목이 포함됩니다. 예를 들어 목록 인스턴스는 콘텐츠 형식에 종속되고 콘텐츠 형식은 필드에 종속됩니다. SharePoint 솔루션을 가져온 후 솔루션에서 항목을 삭제하고 종속 항목을 삭제하지 않은 경우 Visual Studio에서는 솔루션을 배포하려고 시도할 때까지 참조 문제를 알리지 않습니다. 예를 들어 가져온 솔루션에 콘텐츠 형식에 종속된 목록 인스턴스가 있는데 해당 콘텐츠 형식을 삭제한 경우 배포 시 오류가 발생할 수 있습니다. 이 오류는 SharePoint 서버에 종속 항목이 없는 경우 발생합니다. 마찬가지로, 삭제된 항목에도 관련 속성 모음이 있는 경우 PropertyBags Elements.xml 파일에서 해당 속성 모음 항목을 삭제합니다. 따라서 가져온 솔루션에서 항목을 삭제하고 배포 오류가 발생한 경우 종속 항목도 삭제되어야 하는지 확인합니다.
누락된 기능 특성 복원
솔루션을 가져올 때 가져온 기능 매니페스트에서 일부 선택적 기능 특성이 누락됩니다. 새 기능 파일에서 이러한 특성을 복원하려는 경우 원래 기능 파일과 새 기능 매니페스트를 비교하여 누락된 특성을 확인하고 방법: SharePoint 기능 사용자 지정 항목의 지침을 따릅니다.
기본 제공 목록 인스턴스에서 배포 충돌 검색이 수행되지 않음
Visual Studio는 기본 제공 목록 인스턴스(즉, SharePoint에서 제공하는 기본 목록 인스턴스)에서 배포 충돌 검색을 수행하지 않습니다. 충돌 검색을 수행하지 않는 이유는 SharePoint의 기본 제공 목록 인스턴스를 덮어쓰지 않기 위해서입니다. 기본 제공 목록 인스턴스는 계속 배포되거나 업데이트되지만 결코 삭제되거나 덮어 쓰이지는 않습니다. 자세한 내용은 SharePoint 패키징 및 배포 문제 해결을 참조하세요.
SharePoint Server 2010 워크플로 가져오기
SharePoint Server에서 만든 워크플로를 가져오면 배포 후에 워크플로가 올바르게 실행되지 않습니다. 특정 어셈블리가 누락되고 SharePoint Server 워크플로에 현재 Visual Studio 워크플로 솔루션에서 지원되지 않는 InfoPath 양식이 포함되어 있으므로 워크플로가 올바르게 실행되지 않습니다. 그러나 SharePoint Server 어셈블리에 참조 추가 및 InfoPath 양식에 다시 연결과 같은 일부 항목을 수정하면 가져온 SharePoint Server 워크플로가 올바르게 작동할 수 있습니다. 자세한 내용은 SharePoint Server 2010 워크플로 가져오기를 참조하세요.
항목 이름 문자 제한
Visual Studio에서는 프로젝트 이름과 프로젝트 항목 이름(경로 포함)을 총 260자로 제한합니다. 솔루션을 가져올 때 항목 이름이 이 제한을 초과하면 오류가 발생합니다.
지정한 경로 또는 파일 이름이나 둘 다가 너무 깁니다. 정규화된 파일 이름은 260자 미만이어야 하며 디렉터리 이름은 248자 미만이어야 합니다.
이 오류가 발생하는 경우 항목이 만들어지지 않습니다. 이 문제는 모듈을 가져올 때 가장 자주 발생합니다. 이 문제를 방지하려면 다음을 수행합니다.
새 프로젝트 추가 대화 상자에서 프로젝트 이름을 입력할 때 짧은 이름을 사용합니다.
경로가 짧아지도록 가능한 한 루트 폴더에 가까운 위치에 프로젝트를 만듭니다.
SharePointProductVersion 특성
Windows SharePoint Services 3.0 또는 Microsoft Office SharePoint Server 2007과 같은 이전 버전의 SharePoint에서 만든 솔루션을 가져오는 경우 패키지 매니페스트의 SharePointProductVersion 특성 값을 12.0으로 변경하거나 스크립트 관리자 컨트롤을 가져온 모든 웹 페이지에 삽입하고 SharePointProductVersion을 14.0로 설정한 상태로 둡니다. 그렇지 않은 경우 가져온 웹 양식이 SharePoint에 표시되지 않습니다.
배경
SharePoint Foundation 및 SharePoint Server의 솔루션에는 SharePointProductVersion이라는 특성이 포함됩니다. SharePoint는 패키지 매니페스트에서 이 특성을 사용하여 솔루션을 디자인할 SharePoint 버전을 확인합니다. 두 유효한 값은 12.0 및 14.0입니다. 12.0 값은 항목이 Windows SharePoint Services 3.0 또는 Microsoft Office SharePoint Server 2007용으로 설계되었음을 나타내며 14.0 값은 항목이 SharePoint Foundation 또는 SharePoint Server용으로 설계되었음을 나타냅니다.
ASPX 페이지를 렌더링할 때 보안을 강화하기 위해 SharePoint Foundation 및 SharePoint Server를 사용하려면 모든 ASPX 또는 마스터 페이지에 스크립트 관리자 컨트롤이 있어야 합니다. 스크립트 관리자에 대한 자세한 내용은 ScriptManager 컨트롤 개요를 참조하세요. Windows SharePoint Services 3.0 및 Microsoft Office SharePoint Server 2007에서는 스크립트 관리자 컨트롤을 사용할 수 없으므로 SharePoint Foundation 또는 SharePoint Server로 업그레이드된 Windows SharePoint Services 3.0 또는 Microsoft Office SharePoint Server 2007 페이지에 추가해야 합니다. 표준 마스터 페이지에는 스크립트 관리자 컨트롤이 이미 추가되어 있으므로 표준 마스터 페이지를 사용하는 ASPX 페이지에는 스크립트 관리자 컨트롤이 필요하지 않습니다. 그러나 마스터 페이지를 사용하지 않거나 사용자 지정 마스터 페이지를 사용하는 ASPX 페이지를 SharePoint Foundation 또는 SharePoint Server에서 사용하려면 스크립트 컨트롤을 추가해야 합니다.
모든 새 프로젝트의 SharePointProductVersion 특성은 14.0으로 설정되므로 스크립트 관리자 컨트롤이 없는 경우 Windows SharePoint Services 3.0 또는 Microsoft Office SharePoint Server 2007 프로젝트를 Visual Studio 2010으로 가져오면 문제가 발생할 수 있습니다. 웹 양식이 있는 업그레이드된 프로젝트를 스크립트 관리자 없이 배포할 경우 SharePoint에 양식이 표시되지 않습니다.