다음을 통해 공유


연습: 배포 매니페스트를 사용하여 문서 수준 사용자 지정 배포(2003 시스템)

업데이트: 2007년 11월

적용 대상

이 항목의 정보는 지정된 Visual Studio Tools for Office 프로젝트 및 Microsoft Office 버전에만 적용됩니다.

프로젝트 형식

  • 문서 수준 프로젝트

Microsoft Office 버전

  • Microsoft Office 2003

자세한 내용은 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.

이 연습에서는 Microsoft Office Excel 또는 Microsoft Office Word용 문서 수준 사용자 지정을 서버의 네트워크 공유에 배포하는 방법을 보여 줍니다. 이 연습을 마치면 서버의 솔루션을 개발 컴퓨터에서 실행할 수 있게 됩니다. 문서 수준 사용자 지정에 대한 자세한 내용은 문서 수준 사용자 지정 아키텍처를 참조하십시오.

프로덕션 환경에서 Visual Studio Tools for Office 솔루션은 우선 테스트 서버에 게시된 다음 IT 부서의 승인을 거쳐 프로덕션 서버에 다시 배포됩니다. 이 연습에서는 솔루션을 개발 컴퓨터의 임시 위치에 게시한 다음 솔루션을 임시 위치에서 서버로 다시 배포합니다. 솔루션 배포 옵션에 대한 자세한 내용은 배포 모델(2003 시스템)을 참조하십시오.

이 연습에서는 다음 작업을 수행합니다.

  • 게시 마법사를 사용하여 솔루션을 개발 컴퓨터의 위치에 게시

  • 로컬 컴퓨터의 솔루션을 수동으로 서버의 네트워크 공유에 다시 배포

  • 새 배포 매니페스트 위치를 가리키도록 문서에 포함된 응용 프로그램 매니페스트를 프로그래밍 방식으로 수정

  • 외부 응용 프로그램 매니페스트의 새 위치를 가리키도록 배포 매니페스트 편집

  • 새 어셈블리 위치와 배포 매니페스트를 가리키도록 외부 응용 프로그램 매니페스트 편집

사전 요구 사항

이 연습을 완료하려면 다음 구성 요소가 필요합니다.

  • Visual Studio Tools for Office(Visual Studio 2008 Professional 및 Visual Studio Team System의 선택적 구성 요소)

  • Microsoft Office Word 2003 또는 Microsoft Office Excel 2003

    참고:

    이 연습에서는 Word 솔루션을 배포한다고 가정합니다. Excel 솔루션으로 연습을 수행하려면 모든 코드와 XML 예제에서 Word 프로젝트 이름을 Excel 프로젝트 이름으로 바꿉니다.

  • 배포할 네트워크 서버에 대한 액세스. 이 연습에서는 솔루션을 네트워크 공유 \\DeployServer\ShareFolder에 다시 배포한다고 가정합니다.

  • 네트워크 위치에 대한 보안 정책을 설정할 수 있는 배포 컴퓨터의 관리자 권한

프로젝트 만들기

이 단계에서는 Word 문서 프로젝트를 만듭니다.

새 프로젝트를 만들려면

Visual Studio의 디자이너에 새 Word 문서가 열리고 WordDeployment 프로젝트가 솔루션 탐색기에 추가됩니다.

문서에 숨겨진 코드 추가

문서를 열 때 솔루션이 올바르게 작동하는지 확인하는 데 사용할 수 있는 코드를 프로젝트에 추가해야 합니다. 이 연습에서는 문서의 Startup 이벤트 처리기에 메시지 상자를 하나 추가합니다.

초기화 이벤트에 메시지 상자를 추가하려면

  1. 솔루션 탐색기에서 ThisDocument.vb 또는 ThisDocument.cs를 마우스 오른쪽 단추로 클릭한 다음 바로 가기 메뉴에서 코드 보기를 클릭합니다.

  2. 초기화하는 동안 메시지 상자를 표시하도록 아래의 코드를 ThisDocument 클래스 내의 Startup 이벤트 처리기에 추가합니다.

    Private Sub ThisDocument_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles Me.Startup
    
        MessageBox.Show("The document is deployed correctly.")
    End Sub
    
    private void ThisDocument_Startup(object sender, System.EventArgs e)
    {
        MessageBox.Show("The document is deployed correctly.");
    }
    
  3. F5 키를 눌러 프로젝트를 실행합니다.

    Word가 시작되고 메시지 상자가 표시됩니다.

  4. 메시지 상자를 닫습니다.

  5. Word를 종료합니다.

솔루션 게시

배포 프로세스의 첫 단계로 먼저 솔루션을 로컬 컴퓨터의 임시 위치에 게시해야 합니다.

솔루션을 게시하려면

  1. 솔루션 탐색기에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭합니다.

  2. 바로 가기 메뉴에서 게시를 클릭합니다.

    게시 마법사가 나타납니다.

  3. 이 응용 프로그램을 게시할 위치 지정 상자에 C:\TestDeploy를 입력합니다.

  4. 마침을 클릭합니다.

    솔루션 문서와 배포 매니페스트가 C:\TestDeploy에 복사됩니다. 솔루션 어셈블리, 업데이트된 응용 프로그램 매니페스트, 솔루션 문서와 배포 매니페스트의 복사본 등이 C:\TestDeploy\WordDeployment_1.0.0.0에 복사됩니다. 자세한 내용은 문서 수준 사용자 지정 배포(2003 시스템)를 참조하십시오.

  5. 파일 메뉴에서 솔루션 닫기를 클릭하여 Visual Studio에서 WordDeployment 솔루션을 닫습니다.

    참고:

    어셈블리가 아직은 실행 권한이 없으므로 솔루션을 실행하려고 하면 오류가 throw됩니다. 나중에 어셈블리에 완전 신뢰 권한을 부여하도록 보안 정책을 업데이트하게 됩니다.

솔루션을 게시하면 솔루션 문서의 포함된 응용 프로그램 매니페스트는 배포 매니페스트의 전체 경로를 가리킵니다. 솔루션 파일을 다른 위치에 다시 배포하는 경우 배포 매니페스트의 새 위치를 가리키도록 포함된 응용 프로그램 매니페스트를 업데이트해야 합니다. 또한 새 파일 위치를 가리키도록 배포 매니페스트와 외부 응용 프로그램 매니페스트도 업데이트해야 합니다.

포함된 응용 프로그램 매니페스트 업데이트

포함된 응용 프로그램 매니페스트를 편집하려면 Visual Studio Tools for Office에서 제공하는 ServerDocument 클래스를 사용합니다. ServerDocument 클래스를 사용할 경우 Visual Studio Tools for Office 솔루션이 아니라 콘솔 프로젝트 같은 새 프로젝트에서 코드를 실행해야 하며 Visual Studio Tools for Office 솔루션 문서는 닫혀 있어야 합니다.

참고:

Visual Studio Tools for Office에는 포함된 응용 프로그램 매니페스트를 편집하는 데 사용할 수 있는 도구를 만드는 방법을 보여 주는 샘플이 들어 있습니다. 자세한 내용은 ServerDocument 샘플을 참조하십시오.

포함된 응용 프로그램 매니페스트를 업데이트하려면

  1. 콘솔 응용 프로그램 프로젝트를 새로 만듭니다.

  2. Microsoft.VisualStudio.Tools.Applications.RuntimeSystem.Windows.Forms 어셈블리에 대한 참조를 이 프로젝트에 추가합니다.

  3. Program.cs 또는 Module1.vb 파일을 열고 파일의 맨 위에 다음 Imports 또는 using 문을 추가합니다.

    Imports Microsoft.VisualStudio.Tools.Applications.Runtime
    
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    
  4. 다음 코드를 Main 함수에 복사합니다. 이 코드는 솔루션 문서의 포함된 응용 프로그램 매니페스트에 대한 액세스를 제공하는 ServerDocument를 만듭니다. 또한 새 배포 매니페스트 경로를 DeployManifestPath 속성에 할당한 다음 ServerDocument를 저장하고 닫습니다.

    Dim sd As ServerDocument = Nothing
    Try
        sd = New ServerDocument("C:\TestDeploy\WordDeployment.doc")
        sd.AppManifest.DeployManifestPath = _
            "\\DeployServer\ShareFolder\WordDeployment.application"
        sd.Save()
    
    Finally
        If Not sd Is Nothing Then
            sd.Close()
        End If
    End Try
    
    ServerDocument sd = null;
    try
    {
        sd = new ServerDocument(@"C:\TestDeploy\WordDeployment.doc");
        sd.AppManifest.DeployManifestPath = 
            @"\\DeployServer\ShareFolder\WordDeployment.application";
        sd.Save();
    }
    finally
    {
        if (sd != null)
        {
            sd.Close();
        }
    }
    
  5. F5 키를 눌러 프로젝트를 실행합니다.

    포함된 응용 프로그램 매니페스트가 업데이트되는 동안 일시적으로 콘솔 창이 나타났다가 닫힙니다.

배포 매니페스트 업데이트

Visual Studio Tools for Office 솔루션 문서의 포함된 응용 프로그램 매니페스트를 업데이트했으므로 이제는 외부 응용 프로그램 매니페스트의 새 위치를 가리키도록 배포 매니페스트를 업데이트해야 합니다.

배포 매니페스트를 업데이트하려면

  1. 배포 매니페스트를 텍스트 편집기(예: 메모장)에서 엽니다. 배포 매니페스트는 C:\TestDeploy라는 게시 폴더에 있는 WordDeployment.application입니다.

  2. <dependentAssembly> 요소의 codebase 특성을 외부 응용 프로그램 매니페스트의 최종 배포 위치에 대한 전체 경로로 설정합니다. 자세한 내용은 <dependentAssembly> 요소(Visual Studio Tools for Office 참조)를 참조하십시오. 이 연습에서 해당 특성은 다음 예제와 같습니다.

    <dependentAssembly
        codebase="\\DeployServer\ShareFolder\
        WordDeployment_1.0.0.0\WordDeployment.dll.manifest"
    
  3. 배포 매니페스트 파일을 저장한 다음 닫습니다.

외부 응용 프로그램 매니페스트 업데이트

배포 매니페스트를 업데이트하는 것 외에도 솔루션 어셈블리와 배포 매니페스트의 최종 배포 위치를 가리키도록 외부 응용 프로그램 매니페스트를 편집해야 합니다. Visual Studio Tools for Office 솔루션을 게시할 때마다 솔루션 어셈블리의 현재 버전을 가리키는 새 외부 응용 프로그램 매니페스트가 생성됩니다.

외부 응용 프로그램 매니페스트를 업데이트하려면

  1. 응용 프로그램 매니페스트를 텍스트 편집기(예: 메모장)에서 엽니다. 응용 프로그램 매니페스트는 C:\TestDeploy\WordDeployment_1.0.0.0이라는 게시 폴더에 있는 WordDeployment.dll.manifest입니다.

  2. <dependency> 요소의 자식인 <installFrom> 요소를 찾고 codebase 특성을 현재 솔루션 어셈블리의 전체 경로로 설정합니다. 자세한 내용은 <installFrom> 요소(Visual Studio Tools for Office 참조)를 참조하십시오. 이 연습에서 해당 특성은 다음 예제와 같습니다.

    <dependentAssembly
        codebase="\\DeployServer\ShareFolder\
        WordDeployment_1.0.0.0\WordDeployment.dll"
    
  3. <assembly> 요소의 자식인 <installFrom> 요소를 찾고 codebase 특성을 배포 매니페스트의 전체 경로로 설정합니다. 자세한 내용은 <installFrom> 요소(Visual Studio Tools for Office 참조)를 참조하십시오. 이 연습에서 해당 특성은 다음 예제와 같습니다.

    <dependentAssembly
        codebase="\\DeployServer\ShareFolder\WordDeployment.application"
    
  4. 응용 프로그램 매니페스트 파일을 저장한 다음 닫습니다.

서버에 솔루션 파일 복사

매니페스트를 편집했으므로 이제 서버의 최종 배포 대상에 솔루션 파일을 복사할 수 있습니다.

서버에 솔루션 파일을 복사하려면

  1. 네트워크 파일 공유 \\DeployServer\ShareFolder 아래 WordDeployment_1.0.0.0 폴더를 만듭니다.

  2. 솔루션 문서와 배포 매니페스트를 \\DeployServer\ShareFolder에 복사합니다.

  3. 솔루션 어셈블리와 응용 프로그램 매니페스트를 \\DeployServer\ShareFolder\WordDeployment_1.0.0.0에 복사합니다.

네트워크 폴더에 완전 신뢰 부여

네트워크 폴더에서 Visual Studio Tools for Office 솔루션을 실행하려면 개발 컴퓨터의 보안 정책에서 네트워크 폴더에 완전 신뢰를 부여해야 합니다. 코드 액세스 보안 정책 도구(Caspol.exe)를 사용하여 명령 프롬프트에서 보안 정책을 수정할 수 있습니다. 네트워크 위치를 신뢰하려면 관리자 권한이 있어야 하고 시스템 수준에서 보안 정책을 변경해야 합니다.

참고:

이 절차는 이 연습을 수행하기 위하여 만들어졌습니다. 특정 어셈블리 또는 디렉터리가 안전하고 신뢰할 수 있는지 확실하지 않은 경우 어셈블리나 디렉터리를 신뢰하는 이 절차를 사용하지 마십시오. 사용 권한 부여 및 제거에 대한 자세한 내용은 방법: 폴더 및 어셈블리에 대한 권한 부여(2003 시스템)방법: 폴더 및 어셈블리에서 권한 제거(2003 시스템)를 참조하십시오.

네트워크 폴더를 완전히 신뢰하려면

  • Visual Studio 명령 프롬프트에서 다음 명령을 입력합니다.

    caspol -m -ag LocalIntranet_Zone -url \\DeployServer\ShareFolder\* FullTrust -n "Remote Deployment" -d "Deployment Walkthrough"
    

솔루션 테스트

이제 솔루션을 테스트하여 개발 컴퓨터에서 문서를 열 때 코드가 실행되는지 확인할 수 있습니다.

배포를 테스트하려면

  1. 개발 컴퓨터의 \\DeployServer\ShareFolder\에서 WordDeployment.doc 파일을 엽니다.

  2. 메시지 상자가 표시되는지 확인합니다.

다음 단계

Microsoft Windows Installer (.msi) 파일을 사용하여 솔루션을 배포할 수도 있습니다. 자세한 내용은 연습: Windows Installer 파일을 사용하여 문서 수준 사용자 지정 배포(2003 시스템)를 참조하십시오.

참고 항목

작업

연습: Windows Installer 파일을 사용하여 문서 수준 사용자 지정 배포(2003 시스템)

개념

Office 솔루션 배포(2003 시스템)

문서 수준 사용자 지정 배포(2003 시스템)

배포 모델(2003 시스템)