기존 SharePoint 사이트에서 항목 가져오기

SharePoint 솔루션 패키지 가져오기 프로젝트 템플릿을 사용하면 새 Visual Studio SharePoint 솔루션에 있는 기존 SharePoint 사이트의 요소(예: 콘텐츠 형식 및 필드)를 다시 사용할 수 있습니다. 대부분의 가져온 솔루션은 수정 없이 그대로 실행할 수 있지만 특히 솔루션을 가져온 후 항목을 수정한 경우에는 일부 제한 및 문제점을 고려해야 합니다.

참고

다시 사용할 수 있는 워크플로를 가져오려면 다시 사용할 수 있는 워크플로 프로젝트 가져오기 템플릿을 사용합니다. 자세한 내용은 다음을 참조하십시오. 다시 사용 가능한 워크플로를 가져오기 위한 지침.

지원되는 SharePoint 솔루션

Visual Studio 2010에서는 SharePoint Foundation 2010 및 SharePoint Server 2010에서 만들어진 솔루션의 가져오기를 완벽히 지원합니다.

Visual Studio 2010에서는 다음 응용 프로그램에서 만들어진 솔루션의 가져오기를 지원하지 않습니다.

  • Windows SharePoint Services 3.0

  • Microsoft Office SharePoint Server 2007

  • Visual Studio 2008

  • Microsoft SharePoint Designer 2007

  • Visual Studio 2010

    참고

    즉, Visual Studio 2010에서는 Visual Studio 2010에서 만들어진 SharePoint 솔루션을 가져오도록 지원하지 않습니다.

이러한 응용 프로그램에서 만든 솔루션을 성공적으로 가져올 수 있는 경우도 종종 있지만 이 가져오기는 테스트되지 않았고 지원되지도 않습니다.

항목 가져오기 제한

대부분의 SharePoint 항목은 기존 .wsp 파일에서 가져올 수 있지만 다음 항목은 지원되지 않습니다. 이러한 항목이 올바로 작동하려면 수정이 필요할 수도 있습니다.

  • BDC 엔터티

  • 코드 워크플로 연결 요소

  • 코드 워크플로

  • 비주얼 웹 파트(.ascx)

  • 웹 서비스(.asmx)

  • 콘텐츠 형식 바인딩

  • 이벤트 수신자

  • 목록 정의(템플릿)

  • 사이트 정의

SharePoint Foundation 2010 또는 SharePoint Server 2010에서 솔루션을 내보내는 경우 이러한 항목은 .wsp 파일에서 자동으로 제외됩니다. 그러나 지원되지 않는 도구에서 생성된 다른 .wsp 파일에는 이러한 항목이 포함될 수 있습니다. 이 항목의 앞부분에서 "지원되는 SharePoint 솔루션"을 참조하십시오.

솔루션을 가져오는 경우 발생하는 상황

SharePoint 솔루션 패키지 가져오기 템플릿을 사용하여 솔루션을 가져오면 Visual Studio에서는 .wsp 파일의 모든 내용을 복사하고 가져온 요소와 파일 사이의 연결 및 참조를 조정하고 가능한 한 많이 보존하려고 합니다.

가져온 모든 항목은 솔루션 탐색기의 상응하는 폴더에 복사됩니다. 예를 들어 콘텐츠 형식은 콘텐츠 형식 폴더에 나타나고 목록 인스턴스는 목록 인스턴스에 나타납니다. 가져온 항목과 연결된 파일 역시 해당 항목의 폴더에 복사됩니다. 예를 들어 가져온 목록 인스턴스에는 모듈, 폼 및 ASPX 페이지가 포함됩니다.

종속 항목

SharePoint 솔루션 패키지 가져오기 마법사에서 항목만 선택하고 종속 항목을 선택하지 않으면 가져오기 전에 종속 항목도 선택해야 함을 알려 주는 메시지 상자가 나타납니다.

기능 소개

SharePoint Designer 사용자는 솔루션 탐색기의 가져온 솔루션에 기능이라고 하는 예상치 못한 파일이 있는 것을 확인할 수 있습니다. 기능은 전에도 SharePoint Designer 솔루션에 있었지만 뷰에서 숨겨져 있었습니다. 그러나 이제는 Visual Studio에서 기능을 볼 수 있습니다.

기능은 SharePoint 항목의 컨테이너입니다. 각 기능은 해당 기능에 포함된 콘텐츠 형식 및 목록 정의 같은 각 항목에 대한 참조를 유지합니다. 솔루션을 가져올 경우 Visual Studio에서는 가져온 모든 요소에 대해 기능을 설정하고 파일을 위해 기능-요소 관계를 유지하려고 합니다. 참조가 확인될 수 없는 파일은 Other Imported Files 폴더에 배치됩니다.

기능에 대한 자세한 내용은 SharePoint 솔루션 개발Working with Features를 참조하십시오.

특별한 경우 처리

경우에 따라 Visual Studio는 항목과 종속 파일을 조정하지 못할 수 있습니다. Visual Studio에서 확인할 수 없는 모든 파일은 Other Imported Files 폴더에 표시됩니다. 또한 이러한 파일은 솔루션과 함께 배포되지 않도록 DeploymentType 속성이 NoDeployment로 설정됩니다.

예를 들어 목록 정의 ExpenseForms를 가져오는 경우 이 이름을 갖는 목록 정의가 솔루션 탐색기목록 정의 폴더에 Elements.xml 및 Schema.xml 파일과 함께 나타납니다. 그러나 연결된 ASPX 및 HTML 양식은 Other Imported Files 폴더 아래의 ExpenseForms 폴더에 배치될 수 있습니다. 가져오기를 완료하려면 솔루션 탐색기에서 ExpenseForms 목록 정의 아래에 있는 이러한 파일을 이동하고 각 파일의 DeploymentType 속성을 NoDeployment에서 ElementFile로 변경합니다.

이벤트 수신자를 가져올 경우 Elements.xml 파일은 올바른 위치에 복사되지만 어셈블리가 솔루션과 함께 배포되도록 솔루션 패키지에 어셈블리를 수동으로 포함해야 합니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 방법: 추가 어셈블리 추가 및 제거를 참조하십시오.추가 정보

워크플로를 가져오면 InfoPath 양식이 Other Imported Files 폴더에 복사됩니다. .wsp 파일에 웹 템플릿이 포함되어 있으면 이 템플릿은 솔루션 탐색기에서 시작 페이지로 설정됩니다.

필드 및 속성 모음 가져오기

여러 필드가 있는 솔루션을 가져오는 경우 모든 개별 필드 정의는 솔루션 탐색기에서 Fields라는 노드 아래에 있는 단일 Elements.xml 파일에 병합됩니다. 이와 유사하게 모든 속성 모음 항목은 PropertyBags라는 노드 아래에 있는 Elements.xml 파일에 병합됩니다.

SharePoint에서 필드는 텍스트, 부울 또는 조회 같은 데이터 형식이 지정되어 있는 열입니다. 자세한 내용은 Building Block: Columns and Field Types를 참조하십시오. 속성 모음을 사용하면 팜 및 SharePoint 사이트의 목록 등을 모두 포괄하는 SharePoint의 개체에 속성을 추가할 수 있습니다. 속성 모음은 속성 이름과 값을 저장하는 해시 테이블로 구현됩니다. 자세한 내용은 Managing SharePoint Configuration 또는 SharePoint Property Bag Settings를 참조하십시오.

프로젝트에서 항목 삭제

SharePoint 솔루션에 있는 대부분의 항목은 하나 이상의 종속 항목을 갖습니다. 예를 들어 목록 인스턴스는 콘텐츠 형식에 의존하고 콘텐츠 형식은 필드에 의존합니다. SharePoint 솔루션을 가져온 후 솔루션에서 종속 항목이 아닌 항목을 삭제하면 사용자가 솔루션을 배포하려고 할 때까지 Visual Studio에서는 사용자에게 참조 문제를 알리지 않습니다. 예를 들어 콘텐츠 형식에 의존하는 목록 정의가 가져온 솔루션에 있는 경우 해당 콘텐츠 형식을 삭제하면 배포 중에 오류가 발생할 수 있습니다. 이 오류는 SharePoint 서버에 종속 항목이 없으면 발생합니다. 마찬가지로 삭제된 항목에 관련된 속성 모음이 있으면 PropertyBags Elements.xml 파일에서 해당 속성 모음 항목을 삭제합니다. 따라서 가져온 솔루션에서 항목을 삭제하여 배포 오류가 발생하면 모든 종속 파일도 삭제되어야 하는지 확인합니다.

누락된 기능 특성 복원

솔루션을 복원할 경우 일부 선택적 기능 특성은 가져온 기능 매니페스트에서 누락됩니다. 새 기능 파일에서 이러한 특성을 복원하려면 원본 기능 파일을 새 기능 매니페스트와 비교하여 누락된 특성을 식별하고 방법: SharePoint 기능 사용자 지정 항목에 있는 지침을 따릅니다.

기본 제공 목록 인스턴스에서 허용되지 않는 배포 충돌 감지

Visual Studio에서는 기본 제공 목록 인스턴스, 즉 SharePoint와 함께 제공되는 기본 목록 인스턴스에 대해 배포 충돌 감지를 수행하지 않습니다. SharePoint에서 기본 제공 목록 인스턴스를 덮어쓰지 않도록 하기 위해 충돌 감지는 수행되지 않습니다. 기본 제공 목록 인스턴스는 계속 배포되거나 업데이트되지만 결코 삭제되거나 덮어 쓰이지는 않습니다. 자세한 내용은 다음을 참조하십시오. SharePoint 패키징 및 배포 문제 해결을 참조하십시오.

SharePoint Server 2010 워크플로 가져오기

SharePoint Server 2010에서 만든 워크플로를 가져오는 경우 워크플로는 배포 이후에 올바르게 실행되지 않습니다. 워크플로가 올바르게 실행되지 않는 이유는 특정 어셈블리가 누락되어 있고 Visual Studio 워크플로 솔루션에서 지원되지 않는 InfoPath 양식이 SharePoint Server 2010 워크플로에 포함되어 있기 때문입니다. 그러나 SharePoint Server 2010 어셈블리에 대한 참조를 추가하고 InfoPath 양식에 다시 연결하는 등의 작업을 통해 일부 항목을 수정한 후에는 가져온 SharePoint Server 2010 워크플로가 올바르게 작동될 수 있습니다. 자세한 내용은 다음을 참조하십시오. Importing SharePoint Server 2010 Workflows를 참조하십시오.

항목 이름 문자 제한

Visual Studio에서 프로젝트 및 프로젝트 항목의 이름은 경로를 포함하여 총 260자로 제한됩니다. 솔루션을 가져올 때 항목 이름이 이 제한을 초과하면 오류가 발생합니다.

지정한 경로나 파일 이름 또는 둘 모두가 너무 깁니다. 정규화된 파일 이름은 260자보다 적어야 하고 디렉터리 이름은 248자보다 적어야 합니다.

이 오류가 발생하면 항목이 만들어지지 않습니다. 이 문제는 가져온 모듈에서 흔히 발생합니다. 이 문제를 방지하려면 다음을 수행합니다.

  • 새 프로젝트 추가 대화 상자에 프로젝트 이름을 입력할 때 간단한 이름을 사용합니다.

  • 경로를 줄일 수 있도록 가능하면 루트 폴더와 가까운 위치에 프로젝트를 만듭니다.

SharePointProductVersion 특성

Windows SharePoint Services 3.0 또는 Microsoft Office SharePoint Server 2007 같은 이전 버전의 SharePoint에서 만든 솔루션을 가져오는 경우 패키지 매니페스트의 SharePointProductVersion 특성 값을 12.0으로 변경하거나 스크립트 관리자 컨트롤을 가져온 모든 웹 페이지에 삽입하고 SharePointProductVersion을 14.0으로 설정해 둡니다. 이렇게 하지 않으면 가져온 Web forms이 SharePoint에서 표시되지 않습니다.

Background

SharePoint Foundation 2010 및 SharePoint Server 2010의 솔루션에는 SharePointProductVersion이라는 특성이 포함됩니다. SharePoint에서는 솔루션을 디자인할 때 대상으로 삼은 SharePoint 버전을 확인하기 위해 해당 패키지 매니페스트에 이 특성을 사용합니다. 유효한 두 값은 12.0 및 14.0입니다. 값이 12.0이면 항목을 Windows SharePoint Services 3.0 또는 Microsoft Office SharePoint Server 2007용으로 디자인했다는 의미이고, 값이 14.0이면 항목을 SharePoint Foundation 2010 또는 SharePoint Server 2010용으로 디자인했다는 의미입니다.

ASPX 페이지를 렌더링할 때 보안을 강화하기 위해 SharePoint Foundation 2010 및 SharePoint Server 2010에서는 모든 ASPX 또는 마스터 페이지에 스크립트 관리자 컨트롤을 포함할 것을 요구합니다. 스크립트 관리자에 대한 자세한 내용은 ScriptManager 컨트롤 개요를 참조하십시오. Windows SharePoint Services 3.0 및 Microsoft Office SharePoint Server 2007에서는 스크립트 관리자 컨트롤을 사용하지 않았으므로 SharePoint Foundation 2010 또는 SharePoint Server 2010으로 업그레이드된 모든 Windows SharePoint Services 3.0 또는 Microsoft Office SharePoint Server 2007 페이지에 이 컨트롤을 추가해야 합니다. 표준 마스터 페이지에는 스크립트 관리자 컨트롤이 이미 추가되어 있으므로 표준 마스터 페이지를 사용하는 ASPX 페이지에는 이 컨트롤이 필요하지 않습니다. 그러나 마스터 페이지를 사용하지 않거나 사용자 지정 마스터 페이지를 사용하는 ASPX 페이지는 스크립트 컨트롤을 추가해야만 SharePoint Foundation 2010 또는 SharePoint Server 2010에서 작동합니다.

Windows SharePoint Services 3.0 또는 Microsoft Office SharePoint Server 2007 프로젝트를 Visual Studio 2010으로 가져올 때는 모든 새 프로젝트의 SharePointProductVersion 특성이 14.0으로 설정되므로 스크립트 관리자 컨트롤이 없으면 문제가 될 수 있습니다. 스크립트 관리자가 없는 Web form이 포함된 프로젝트를 업그레이드하여 배포하면 해당 폼이 SharePoint에서 표시되지 않습니다.

참고 항목

작업

연습: 기존 SharePoint 사이트에서 항목 가져오기

연습: Visual Studio에 SharePoint Designer의 다시 사용 가능한 워크플로 가져오기

방법: SharePoint 프로젝트에 기존 BDC 모델 파일 추가

기타 리소스

다시 사용 가능한 워크플로를 가져오기 위한 지침