솔루션 패키지 배포(SharePoint Server 2010)

 

적용 대상: SharePoint Server 2010

마지막으로 수정된 항목: 2016-11-30

이 문서에서는 솔루션 패키지에 대해 설명하고 제작되거나 개발된 사용자 지정 내용을 Microsoft SharePoint Server 2010에 배포할 때 솔루션 패키지가 수행하는 역할에 대해서도 설명합니다. 이 문서에는 솔루션 패키지를 가져와 배포하는 절차가 설명되어 있고 Microsoft Visual Studio 2010을 사용하여 솔루션 패키지를 빌드하고 배포하는 예도 나와 있습니다.

이 문서의 내용

  • 솔루션 패키지의 정의

  • 솔루션 패키지를 사용하여 사이트 요소 배포

  • Visual Studio 2010을 사용하여 연습: 사용자 지정 웹 파트 솔루션 패키지 생성 및 배포

솔루션 패키지의 정의

솔루션 패키지는 사용자 지정 SharePoint Server 2010 개발 콘텐츠를 서버 팜의 웹 서버 또는 응용 프로그램 서버에 제공하는 배포 패키지입니다. 솔루션을 사용하여 사용자 지정 기능, 사이트 정의, 서식 파일, 레이아웃 페이지, 웹 파트, CSS 스타일시트 및 어셈블리를 패키징하고 배포합니다.

이 문서에서는 샌드박스 솔루션의 배포에 대해 설명하지 않습니다. Microsoft SharePoint Server 2010 솔루션을 SharePoint Server 팜에 직접 배포하거나 샌드박스 내에 배포할 수 있습니다. 샌드박스는 프로그램이 특정 리소스에만 액세스할 수 있도록 하고 샌드박스에서 발생하는 문제가 서버 환경의 나머지 부분에 영향을 주지 않도록 하는 제한된 실행 환경입니다. 자세한 내용은 샌드박스 솔루션 개요(SharePoint Server 2010)를 참조하십시오.

솔루션 패키지는 파일 이름 확장명이 .wsp인 CAB 파일이자 매니페스트 파일입니다. Visual Studio 2010 Tools for SharePoint 2010을 사용하여 SharePoint 솔루션을 개발하고 패키지하는 것이 좋습니다. Makecab.exe 및 SharePoint Packman과 같은 도구를 사용하여 솔루션 패키지를 수동으로 만들 수도 있습니다.

다음과 같은 구성 요소를 솔루션으로 패키지화할 수 있습니다.

  • .NET Framework 어셈블리, 일반적으로 웹 파트 어셈블리 및 이벤트 수신기 어셈블리

  • 리소스 파일, 페이지, 기타 도우미 파일 등의 배포 파일

  • 웹 사이트에서 코드를 활성화 및 비활성화하고 사용자 지정 목록, 라이브러리, 필드 및 콘텐츠 형식과 같은 요소를 포함할 수 있도록 하는 기능

  • 새로운 서식 파일 및 사이트 정의

  • 웹 서버 수준에서 수행해야 하는 구성(예: 웹 파트 등록을 위한 Web.config 파일에 사용자 지정 배포). 이러한 구성은 기능과 함께 배포되는 기능을 통해서도 수정할 수 있습니다.

  • 웹 페이지 및 웹 페이지에서 호출되는 이미지와 같은 웹 콘텐츠. 연결되지 않은 환경에서 웹 콘텐츠를 배포해야 하는 경우 콘텐츠 배포 패키지를 사용해야 합니다.

솔루션 패키지를 사용하여 사이트 요소 배포

이 섹션의 내용

  • 솔루션 패키지를 사용해야 하는 경우

  • 팜 솔루션 배포

  • 솔루션 패키지 가져오기

  • 솔루션 패키지 배포

  • 솔루션 패키지 만들기

솔루션 패키지를 사용해야 하는 경우

사용자 지정 내용을 배포하는 최상의 방법은 솔루션 패키지를 일관성 있고 간편하고 안전한 응용 프로그램 수명 주기 관리 프로세스의 일부로 사용하는 것입니다. 솔루션 패키지를 사용하면 웹 사이트가 만들어진 후 사이트의 기능을 보다 간단하게 변경할 수 있습니다.

솔루션 패키지를 사용하여 새 솔루션을 배포하고 팜 전체의 기존 솔루션을 업그레이드할 수 있습니다. 모든 SharePoint Server 항목을 한 파일로 패키지하고 해당 파일을 솔루션 저장소에 추가한 다음 팜의 프런트 엔드 웹 서버에 배포할 수 있습니다. 또한 솔루션 패키지를 사용하여 프런트 엔드 웹 서버의 상태가 팜에 있는 다른 웹 서버의 상태와 일치하도록 프런트 엔드 웹 서버를 동기화할 수 있습니다.

솔루션 패키지를 사용하여 제작된 사이트 요소 사용자 지정 내용을 통합 팜에서 제작, 파일럿 또는 프로덕션 팜에 배포할 수 있습니다. SharePoint Server에서 사용자는 사용자 지정된 사이트를 서식 파일로 저장할 수 있습니다. 이렇게 하면 다른 팜에 배포될 수 있는 파일 이름 확장명이 .wsp인 솔루션 패키지가 만들어집니다.

솔루션 패키지를 사용하여 다음 환경 간에 사용자 지정을 배포할 수 있습니다.

  • 개발자 워크스테이션에서 통합 팜 또는 소프트웨어 구성 관리 시스템으로 배포

  • 통합 팜 및 제작 클라이언트 워크스테이션에서 파일럿 또는 프로덕션 팜으로

팜 솔루션 배포

팜 솔루션은 로컬로 배포되거나 Timer Service를 사용하여 배포됩니다. 로컬 배포와 타이머 기반 배포 모두 명령줄 명령을 사용하거나 개체 모델을 사용하여 프로그래밍 방식으로 트리거될 수 있습니다.

로컬 배포

로컬 배포에서 솔루션 파일은 배포 작업이 시작된 컴퓨터에만 배포됩니다. 솔루션은 솔루션 파일이 서버 팜의 모든 해당 서버에 배포될 때까지 구성 데이터베이스에서 "배포됨"으로 표시되지 않습니다. 이렇게 된 후 솔루션 기능이 설치되고 스키마 및 정의 파일이 구성 저장소에 커밋됩니다.

Timer Service 배포

Timer Service를 사용하는 배포의 경우 배포에서 타이머 작업이 만들어집니다. 이 타이머 작업은 서버 팜의 각 웹 서버에서 Timer Service에 의해 선택됩니다. 처음에는 매니페스트 및 기능 매니페스트가 구문 분석되어 어셈블리 및 _layouts 파일을 찾고 찾은 파일이 적절한 위치에 복사됩니다. 기능 디렉터리에 포함된 다른 모든 파일은 기능 디렉터리에 복사됩니다. 솔루션 파일이 대상 컴퓨터에 복사된 후 구성 재설정이 모든 프런트 엔드 웹 서버에 대해 예약됩니다. 재설정을 통해 파일이 배포되고 Microsoft IIS(인터넷 정보 서비스)가 다시 시작됩니다. 이때 솔루션 기능이 등록되고 스키마 및 정의 파일이 구성 저장소에 커밋됩니다.

솔루션 저장소, 배포 및 동기화에 대한 자세한 내용은 Microsoft SharePoint 2010 SDK(소프트웨어 개발 키트)의 솔루션 배포(영문일 수 있음)(https://go.microsoft.com/fwlink/?linkid=186995&clcid=0x412)(영문일 수 있음)를 참조하십시오.

솔루션 패키지 추가

솔루션 패키지를 배포하려면 SharePoint Server 팜의 솔루션 데이터베이스에 솔루션 패키지를 추가해야 합니다.

중요

Windows PowerShell을 실행하는 모든 컴퓨터에서 Administrators 그룹의 구성원이어야 합니다.

Windows PowerShell을 사용하여 솔루션 패키지를 가져오려면

  1. 다음과 같은 최소 요구 사항을 충족하는지 확인합니다. Add-SPShellAdmin을 참조하십시오.

  2. 시작 메뉴에서 모든 프로그램을 클릭합니다.

  3. Microsoft SharePoint 2010 Products를 클릭합니다.

  4. SharePoint 2010 관리 셸을 클릭합니다.

  5. Windows PowerShell 명령 프롬프트에 다음과 같은 명령을 입력합니다.

    Add-SPSolution -LiteralPath <SolutionPath>
    

솔루션이 팜의 솔루션 저장소에 추가됩니다. 솔루션을 사용하려면 이 문서의 다음 섹션에 나오는 절차를 따릅니다. 자세한 내용은 Add-SPSolution을 참조하십시오.

솔루션 패키지 배포

가져온 솔루션을 중앙 관리 웹 사이트나 Windows PowerShell을 사용하여 배포할 수 있습니다. Windows PowerShellAdd-SPSolution cmdlet을 사용하여 솔루션을 솔루션 저장소에 추가한 후에는 솔루션을 사이트에 배포해야 솔루션에 액세스할 수 있습니다.

참고

중앙 관리의 솔루션 관리 페이지를 사용하여 솔루션을 추가할 수는 없습니다.

다음 절차는 가져온 솔루션을 중앙 관리 웹 사이트나 Windows PowerShell을 사용하여 팜의 사이트에 배포하는 방법을 보여 줍니다.

중앙 관리를 사용하여 솔루션을 배포하려면

  1. 중앙 관리 홈 페이지에서 시스템 설정을 클릭합니다.

  2. 팜 관리 섹션에서 팜 솔루션 관리를 클릭합니다.

  3. 솔루션 관리 페이지에서 배포할 솔루션을 클릭합니다.

  4. 솔루션 속성 페이지에서 솔루션 배포를 클릭합니다.

  5. 솔루션 배포 페이지의 배포 시기 섹션에서 다음 중 하나를 선택합니다.

    • 지금

    • 지정한 시간. 이 옵션을 선택한 경우 날짜 및 시간 상자를 사용하여 시간을 지정합니다. 대상 서버의 부하가 적은 시간을 선택하는 것이 좋습니다.

  6. 배포 위치 섹션의 특정 웹 응용 프로그램 목록에서 모든 웹 응용 프로그램을 클릭하거나 특정 웹 응용 프로그램을 선택합니다.

  7. 확인을 클릭합니다.

Windows PowerShell을 사용하여 단일 웹 응용 프로그램에 솔루션 패키지를 배포하려면

  1. 다음과 같은 최소 요구 사항을 충족하는지 확인합니다. Add-SPShellAdmin을 참조하십시오.

  2. 시작 메뉴에서 모든 프로그램을 클릭합니다.

  3. Microsoft SharePoint 2010 Products를 클릭합니다.

  4. SharePoint 2010 관리 셸을 클릭합니다.

  5. Windows PowerShell 명령 프롬프트에 다음과 같은 명령을 입력합니다.

    Install-SPSolution -Identity <SolutionName> -WebApplication <URLname>
    

    여기서 각 부분이 나타내는 의미는 다음과 같습니다.

    • <SolutionName>은 솔루션의 이름입니다.

    • <URLname>은 가져온 솔루션을 배포할 웹 응용 프로그램의 URL입니다.

    기본적으로 솔루션이 즉시 배포됩니다. time 매개 변수를 사용하여 배포를 예약할 수도 있습니다. 자세한 내용은 Install-SPSolution을 참조하십시오.

Windows PowerShell을 사용하여 모든 웹 응용 프로그램에 솔루션 패키지를 배포하려면

  1. 다음과 같은 최소 요구 사항을 충족하는지 확인합니다. Add-SPShellAdmin을 참조하십시오.

  2. 시작 메뉴에서 모든 프로그램을 클릭합니다.

  3. Microsoft SharePoint 2010 Products를 클릭합니다.

  4. SharePoint 2010 관리 셸을 클릭합니다.

  5. Windows PowerShell 명령 프롬프트에 다음과 같은 명령을 입력합니다.

    Install-SPSolution -Identity <SolutionName> -AllWebApplications -time <TimeToDeploy> -GACDeployment -CASPolicies
    

    여기서 각 부분이 나타내는 의미는 다음과 같습니다.

    • GACDeployment는 SharePoint Server 2010에서 전역 어셈블리 캐시에 어셈블리를 배포할 수 있도록 하는 매개 변수입니다.

    • CASPolicies를 사용하면 사용자 지정 CAS(코드 액세스 보안) 정책 파일을 만들고 대상 사이트 모음의 Web.config 파일에서 해당 파일을 활성화할 수 있습니다.

    기본적으로 솔루션은 즉시 배포되지만 time 매개 변수를 사용하여 배포 일정을 예약할 수도 있습니다.

솔루션 패키지 만들기

SharePoint Server 2010에는 솔루션 패키지를 만들기 위한 도구가 포함되어 있지 않습니다. 이 섹션에서는 개발된 사이트 요소 및 아티팩트를 포함하는 솔루션 패키지를 만드는 방법에 대해 설명합니다.

Visual Studio 2010

Visual Studio 2010을 사용하여 관련된 SharePoint 요소를 기능으로 그룹화한 다음 여러 기능, 사이트 정의, 어셈블리 및 기타 파일을 단일 패키지(.wsp 파일)로 묶어 SharePoint Server 2010을 실행하는 서버에 배포할 수 있습니다. Visual Studio 2010을 사용하여 개발 컴퓨터에서 SharePoint Server 2010을 실행하는 서버에서 .wsp를 디버깅하고 테스트할 수 있습니다.wsp를 디버깅하고 테스트할 수 있습니다. 또한 개발 컴퓨터에서 배포 단계를 사용자 지정할 수도 있습니다.

개발자는 Visual Studio 2010에서 SharePoint 솔루션을 빌드하고 자동화된 빌드 프로세스를 사용하여 .wsp 파일을 생성할 수 있습니다. .wsp 파일을 생성하는 데 사용되는 Visual Studio SharePoint 프로젝트의 소스 코드는 Visual Studio 2010 통합을 사용하여 소스 코드 제어 시스템에 추가할 수도 있습니다. Visual Studio 2010에서는 .wsp 파일을 가져오고 프로젝트를 만들어 .wsp 파일을 더 확장하고 새 .wsp 파일을 만들 수 있습니다. Visual Studio 2010으로 가져온 .wsp 파일의 기본 원본은 SharePoint Server 2010 사이트에서 서식 파일로 저장 명령을 사용하여 사이트에서 저장한 서식 파일입니다. 이러한 서식 파일을 사용하여 모든 사이트 사용자 지정 내용을 SharePoint 솔루션에 저장할 수 있습니다.

자세한 내용은 Visual Studio에서 SharePoint 개발(영문일 수 있음)(https://go.microsoft.com/fwlink/?linkid=187000&clcid=0x412)(영문일 수 있음)을 참조하십시오.

Makecab

솔루션 패키지는 Makecab.exe와 같은 도구를 사용하여 수동으로 만들 수 있습니다. Makecab.exe 도구는 CAB 파일의 구조를 설명하는 .ddf 파일을 가리키는 포인터를 사용합니다. .ddf 파일 형식은 .inf 파일 형식과 비슷합니다. 즉, 표준 헤더를 선언한 다음 파일 집합을 디스크에 있는 위치 및 CAB 파일에 배치할 위치별로 한 줄에 한 파일씩 열거합니다.

Makecab.exe 도구는 Microsoft 캐비닛 소프트웨어 개발 키트 (영문일 수 있음)(https://go.microsoft.com/fwlink/?linkid=189633&clcid=0x412)에서 다운로드할 수 있습니다.

SharePoint PackMan

SharePoint PackMan은 SharePoint 솔루션의 패키징 및 관리 과정을 단순화하는 도구입니다. 파일을 도구로 끌어다 놓으면 .ddf 파일과 manifest.xml 파일이 생성되며 명령 프롬프트에서 Makecab.exe를 실행합니다. 또한 SharePoint PackMan은 하나 이상의 솔루션을 팜 웹 응용 프로그램 또는 사이트 모음에 추가, 배포, 취소 및 삭제하는 과정을 단순화합니다.

SharePoint PackMan 도구는 CodeBox: https://codebox/sppackman(https://go.microsoft.com/fwlink/?linkid=189633&clcid=0x412)에서 다운로드할 수 있습니다.

솔루션 패키지 사용자 지정

SharePoint Server 2010 솔루션에서 다음과 같은 사용자 지정을 수행해야 하는 경우 Visual Studio 2010을 사용하여 솔루션 패키지를 사용자 지정하는 것이 좋습니다. SharePoint 솔루션 패키지를 수동으로 만들어 이러한 사용자 지정을 수행할 수도 있습니다.

  • 전역 어셈블리 캐시가 아니라 개인 응용 프로그램 폴더에 .NET Framework 어셈블리를 배포하는 경우

  • 배포 중에 적용해야 하는 코드 액세스 보안 권한을 솔루션에 추가하는 경우

  • 기본적으로 Feature 폴더에 사용되는 이름에서 파생하는 경우

  • 솔루션을 지역화하는 경우

  • 기능 이벤트 처리기를 웹 파트 솔루션과 같은 특정 형식의 SharePoint Foundation 2010 솔루션에 연결합니다.

  • 솔루션 패키지에 리소스(XML 파일, 사진, .dll 파일, 어셈블리)를 추가하는 경우

수동으로 솔루션 파일 만들기

대부분의 SharePoint Server 2010 개발 시나리오에서는 Visual Studio 2010 Tools for SharePoint 2010을 사용하여 SharePoint 솔루션을 개발하고 패키지하는 것이 좋습니다. Visual Studio 2010의 배포 프로세스에서는 SharePoint Server 2010을 실행하는 서버에 .wsp 파일을 복사하고 솔루션을 설치한 다음 기능을 활성화합니다.

솔루션 파일을 수동으로 만들 수도 있습니다. 솔루션 파일을 만드는 기본 단계는 다음과 같습니다.

  1. 폴더의 개별 솔루션 파일을 모두 수집합니다. 수집 방법과 관련된 구체적인 지침은 없지만 여러 가지 형식의 솔루션 파일을 자체 하위 폴더로 구분하는 것이 최상의 방법입니다.

  2. 솔루션의 구성 요소를 나열하는 manifest.xml 파일을 만듭니다.

  3. 솔루션 파일의 구조를 정의하는 .ddf 파일을 만듭니다. 이 파일에는 출력 .wsp 파일을 결정하는 개별 솔루션 파일의 목록이 들어 있습니다.

  4. .ddf 파일을 입력 파일로 사용하고 .wsp 파일을 출력 파일로 사용하여 Makecab.exe를 실행합니다.

솔루션 매니페스트 파일

솔루션 매니페스트(항상 manifest.xml이라고 함)는 솔루션 파일의 루트에 저장됩니다. 이 파일은 처리할 기능, 사이트 정의, 리소스 파일, 웹 파트 파일 및 어셈블리의 목록을 정의하지만 파일 구조는 정의하지 않습니다. 솔루션에 파일이 포함되어 있지만 manifest.xml 파일에는 나열되지 않은 경우 해당 파일은 처리되지 않습니다.

다음은 XML에 표시된 manifest.xml 파일의 구조에 대한 예제입니다.

<?xml version="1.0" encoding="utf-8" ?>

<Solution xmlns="https://schemas.microsoft.com/sharepoint/"

SolutionId="{79d1a62e-3627-11db-963e-00e08161165f}"

ResetWebServer="TRUE">

    <Assemblies>

        <Assembly DeploymentTarget="GlobalAssemblyCache"

Location="Example.Sharepoint.Webparts\

Example.SharePoint.WebParts.dll">

            <SafeControls>

                <SafeControl Assembly="Example.Sharepoint.Webparts,

Version=1.0.0.0, Culture=Neutral, PublicKeyToken=63cce650e8605f5d"

Namespace="Example.Sharepoint.Webparts" TypeName="*"/>

            </SafeControls>

        </Assembly>

        <Assembly DeploymentTarget="GlobalAssemblyCache"

Location="Example.Sharepoint.Timer/Example.Sharepoint.Timer.dll"/>

    </Assemblies>

    <FeatureManifests>

        <FeatureManifest Location="Example.Sharepoint.Timer\Feature.xml"/>

        <FeatureManifest Location="Example.CustomType\Feature.xml"/>

        <FeatureManifest Location="Example.ExampleLibrary\Feature.xml"/>

        <FeatureManifest Location="Example.Columns\Feature.xml"/>

        <FeatureManifest Location="Example.Workflow.ProcessExample\Feature.xml"/>

        <FeatureManifest Location="Example.Workflow.ProvisionExample\Feature.xml"/>

    </FeatureManifests>

    <SiteDefinitionManifests>

        <SiteDefinitionManifest Location="EXAMPLE">

            <WebTempFile Location="1033\XML\WEBTEMPExample.XML"/>

        </SiteDefinitionManifest>

    </SiteDefinitionManifests>

</Solution>

그 외에도 DwpFiles 요소를 추가하여 .webpart 또는 .dwp 파일을 지정하거나 ResourceFiles 요소를 추가하여 리소스 파일, 사이트 정의, 응용 프로그램 리소스 및 코드 액세스 보안 정책을 지정할 수 있습니다.

필요한 경우 <ElementFile> 태그를 사용하여 Feature.xml 파일에 주석을 추가합니다.

솔루션에 기능이 포함된 경우 Feature.xml 파일의 <ElementManifests> 태그에서 ASP.NET 페이지(예: allitems.aspx) 또는 마스터 페이지 등, 기능의 나머지 모든 파일에 대해 <ElementFile Location="..."/>를 추가합니다.

솔루션의 구성 부분을 정의하는 솔루션 매니페스트 파일에 대한 자세한 내용은 솔루션 스키마(영문일 수 있음)(https://go.microsoft.com/fwlink/?linkid=183466&clcid=0x412)(영문일 수 있음)를 참조하십시오.

Visual Studio 2010을 사용하여 사용자 지정 웹 파트 솔루션 패키지 만들기 및 배포

Visual Studio 2010을 사용하여 프로젝트 작업을 추적하기 위한 SharePoint 목록 정의의 생성, 사용자 지정, 디버깅 및 배포 방법을 보여 주는 연습 예는 MSDN 라이브러리의 연습: 프로젝트 작업 목록 정의 배포(https://go.microsoft.com/fwlink/?linkid=189612&clcid=0x412)를 참조하십시오.

이 연습에서는 다음과 같은 작업을 보여 줍니다.

  • 작업이 포함된 SharePoint 목록 정의 프로젝트 만들기

  • SharePoint 기능에 목록 정의 추가

  • 목록에 이벤트 수신기 추가

  • 기능을 배포하기 위해 SharePoint 패키지 만들기 및 사용자 지정

  • SharePoint 솔루션 구축 및 배포

이 연습에서 예제 프로젝트를 빌드할 때 Visual Studio 2010에서는 테스트 및 디버깅을 위해 개발 컴퓨터에서 SharePoint Server 2010을 실행하는 서버에 자동으로 솔루션을 배포합니다. 다른 컴퓨터에서 추가하고 배포할 수 있는 솔루션 패키지 파일을 만들 수도 있습니다. 자세한 내용은 방법: SharePoint 솔루션 배포(https://go.microsoft.com/fwlink/?linkid=187004&clcid=0x412)(영문일 수 있음)를 참조하십시오. Add-SPSolutionWindows PowerShell cmdlet을 사용하여 솔루션을 다른 컴퓨터로 가져올 수 있습니다.

중앙 관리의 솔루션 관리 페이지를 사용하여 솔루션 패키지를 배포할 수 있습니다. 또는 Install-SPSolutionWindows PowerShell cmdlet을 사용하여 솔루션 패키지를 배포할 수 있습니다.

이 연습에서 프로젝트 목록 기능의 범위는 웹입니다. 기능을 활성화하려면 웹 사이트에서 사이트 작업 메뉴를 확장한 다음 사이트 설정을 클릭합니다. 사이트 작업에서 사이트 기능 관리를 클릭합니다. 기능 페이지의 기능 이름 옆에서 활성화를 클릭합니다.