연습: 문서를 로컬 폴더에, 어셈블리를 네트워크 폴더에 배포(2003 시스템)

업데이트: 2007년 11월

적용 대상

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

프로젝트 형식

  • 문서 수준 프로젝트

Microsoft Office 버전

  • Microsoft Office 2003

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

이 연습에서는 문서는 개발 컴퓨터에, 어셈블리는 네트워크 컴퓨터의 폴더에 배치되도록 문서 수준 사용자 지정을 배포하는 방법을 보여 줍니다. 이러한 배포 형식을 로컬/네트워크 배포 모델이라고 합니다.

솔루션 배포 옵션에 대한 자세한 내용은 배포 모델(2003 시스템)을 참조하십시오. 문서 수준 사용자 지정에 대한 자세한 내용은 문서 수준 사용자 지정 아키텍처를 참조하십시오.

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

  • 어셈블리를 가리키도록 문서에 포함된 응용 프로그램 매니페스트 편집

  • 네트워크 폴더에 있는 Visual Studio Tools for Office 솔루션 어셈블리에 완전 신뢰 부여

사전 요구 사항

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

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

  • Microsoft Office Word 2003 또는 Microsoft Office Excel 2003

    참고:

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

  • 배포용 네트워크 컴퓨터에 대한 액세스

  • 개발 컴퓨터에서 보안 정책을 설정하는 데 필요한 관리자 권한

배포할 솔루션 만들기

먼저 배포할 기본 Visual Studio Tools for Office 솔루션을 만듭니다. 이미 배포할 솔루션이 준비된 경우 이 단계를 생략하고 "포함된 응용 프로그램 매니페스트 편집" 단계로 진행할 수 있습니다.

배포할 솔루션을 만들려면

  1. Office 2003의 프로젝트 템플릿을 사용하여 WordDeployment라는 Word 문서 프로젝트를 만듭니다.

    마법사에서 새 문서 만들기를 선택합니다. 자세한 내용은 방법: Visual Studio Tools for Office 프로젝트 만들기를 참조하십시오.

  2. 솔루션 탐색기에서 ThisDocument 코드 파일을 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭합니다.

  3. ThisDocument_Startup 이벤트 처리기에 다음 코드를 추가합니다. 이 코드는 문서가 열릴 때 메시지를 표시하므로 솔루션이 성공적으로 배포되었는지 여부를 쉽게 확인할 수 있습니다.

    MessageBox.Show("The deployment is successful")
    
    MessageBox.Show("The deployment is successful");
    

    Startup 이벤트에 대한 자세한 내용은 Visual Studio Tools for Office 프로젝트 이벤트를 참조하십시오.

  4. F5 키를 눌러 프로젝트를 빌드하고 실행합니다. 메시지가 표시되는지 확인합니다.

  5. Word를 종료합니다.

  6. Visual Studio에서 솔루션을 닫습니다.

    이때 Word의 인스턴스 또는 프로젝트 디자이너에 문서가 열려 있지 않아야 합니다. 문서가 열려 있으면 이후 단계에서 ServerDocument를 사용하여 문서에 액세스할 수 없습니다.

포함된 응용 프로그램 매니페스트 편집

솔루션을 빌드할 때는 어셈블리가 기본적으로 문서와 같은 폴더에 있는 것으로 간주됩니다. 어셈블리의 위치는 문서에 포함된 응용 프로그램 매니페스트에 저장됩니다. 문서와 어셈블리를 서로 다른 폴더에 배포하는 경우에는 포함된 응용 프로그램 매니페스트를 편집하여 새 어셈블리 경로를 지정해야 합니다.

다음 단계에서는 ServerDocument 클래스를 사용하여 사용자 지정 어셈블리의 새 위치를 가리키도록 문서에 포함된 응용 프로그램 매니페스트를 편집합니다. ServerDocument를 사용하여 포함된 응용 프로그램 매니페스트를 편집하는 코드는 배포 대상 문서에 연결된 Visual Studio Tools for Office 프로젝트 어셈블리 외부에 있어야 합니다.

포함된 응용 프로그램 매니페스트를 편집하려면

  1. 콘솔 응용 프로그램 프로젝트를 새로 만듭니다. 자세한 내용은 방법: 솔루션 및 프로젝트 만들기를 참조하십시오.

  2. 새 프로젝트에 Microsoft.VisualStudio.Tools.Applications.Runtime.dll 어셈블리에 대한 참조를 추가합니다.

  3. Program.cs 또는 Module1.vb 코드 파일의 맨 위에 다음 using 문(C#) 또는 Imports 문(Visual Basic)을 추가합니다.

    Imports Microsoft.VisualStudio.Tools.Applications.Runtime
    
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    
  4. 다음 코드를 Main 메서드에 추가하여 포함된 응용 프로그램 매니페스트를 업데이트합니다. 이때 full document path 대신 project folder\bin\debug\WordDeployment.doc와 같이 개발 컴퓨터의 해당 빌드 위치에 있는 문서의 전체 경로를 입력하고, full assembly path 대신 \\DeploymentServer\DeploymentFolder\WordDeployment.dll과 같이 배포 대상 네트워크 폴더에 있는 어셈블리의 전체 경로를 입력합니다.

    Dim sd As ServerDocument = Nothing
    Try
        sd = New ServerDocument("full document path")
        sd.AppManifest.Dependency.AssemblyPath = _
            "full assembly path"
        sd.Save()
    Finally
        If Not sd Is Nothing Then
            sd.Close()
        End If
    End Try
    
    ServerDocument sd = null;
    try
    {
        sd = new ServerDocument(@"full document path");
        sd.AppManifest.Dependency.AssemblyPath = 
            @"full assembly path";
        sd.Save();
    }
    finally
    {
        if (sd != null)
        {
            sd.Close();
        }
    }
    
  5. 프로젝트를 빌드하여 실행합니다. 콘솔 응용 프로그램을 통해 포함된 응용 프로그램 매니페스트의 어셈블리 경로가 업데이트된 후 응용 프로그램이 닫힙니다.

  6. 콘솔 응용 프로그램 프로젝트를 닫습니다.

솔루션 배포

이제 경로가 올바르므로 문서를 개발 컴퓨터의 폴더에, 어셈블리를 네트워크 컴퓨터의 폴더에 배포할 수 있습니다.

솔루션을 배포하려면

  1. Windows 시스템 드라이브(%SystemDrive%)의 루트에 TestDeployDocument라는 폴더를 만듭니다. 예를 들어 시스템 드라이브가 C인 경우 새 폴더는 C:\TestDeployDocument가 됩니다.

  2. 네트워크 컴퓨터에 DeploymentFolder라는 폴더를 만들고 작업자 자신과 공유합니다. 예를 들어 네트워크 컴퓨터의 이름이 DeploymentServer인 경우 새 네트워크 공유는 \\DeploymentServer\DeploymentFolder가 됩니다. 네트워크 공유의 이름은 이전 단계에서 포함된 응용 프로그램 매니페스트를 편집할 때 full assembly path 대신 지정한 이름과 같아야 합니다.

  3. 빌드 출력 폴더(일반적으로 project folder\bin\debug 또는 project folder\bin\release)에서 개발 컴퓨터의 %SystemDrive%\TestDeployDocument 폴더로 문서를 복사합니다.

  4. 빌드 출력 폴더에서 \\DeploymentServer\DeploymentFolder 네트워크 공유 위치로 어셈블리를 복사합니다.

  5. 개발 컴퓨터의 %SystemDrive%\TestDeployDocument 폴더에서 문서를 엽니다. 현재의 .NET 보안 정책에서는 사용자 지정을 실행할 수 없다는 오류 메시지가 표시됩니다. 이는 네트워크 폴더의 어셈블리에 완전 신뢰를 부여하지 않았기 때문입니다.

  6. 확인을 클릭한 다음 문서를 닫습니다.

보안 정책 설정

솔루션을 실행하려면 먼저 .NET Framework 2.0 보안 정책에서 어셈블리에 완전 신뢰를 부여해야 합니다. 이 연습에서는 코드 액세스 보안 정책 도구(Caspol.exe)를 사용하여 어셈블리에 완전 신뢰를 부여합니다. Caspol.exe를 사용하는 방법에 대한 자세한 내용은 코드 액세스 보안 정책 도구(Caspol.exe)코드 액세스 보안 정책 도구(Caspol.exe)를 사용하여 보안 정책 구성을 참조하십시오.

보안 정보:

다음은 이 연습을 완료하기 위해 URL 증명 정보를 기반으로 보안 정책을 설정하는 기본 단계입니다. 실제 솔루션에서 해당 위치가 안전하다고 확신할 수 없는 경우 이러한 단계를 통해 어셈블리에 신뢰를 부여해서는 안 됩니다. 실제 솔루션의 경우 어셈블리의 URL뿐만 아니라 추가 증명 정보를 기반으로 보안을 설정해야 합니다. 자세한 내용은 Office 솔루션 실행을 위한 보안 요구 사항(2003 시스템)을 참조하십시오.

어셈블리에 완전 신뢰를 부여하려면

  1. 명령 프롬프트에서 다음 명령을 입력하여 어셈블리에 완전 신뢰를 부여하는 새 코드 그룹을 만듭니다.

    %windir%\Microsoft.NET\Framework\v2.0.50727\caspol -m -ag LocalIntranet_Zone -url "full assembly path" FullTrust -n "Test_Deployment_Assembly"
    

    이때 full assembly path 대신 \\DeploymentServer\DeploymentFolder\WordDeployment.dll과 같이 네트워크 폴더에 있는 어셈블리의 전체 경로를 입력합니다.

    -n 매개 변수는 새 코드 그룹의 이름을 지정합니다. 이 매개 변수는 필수 요소가 아니지만 코드 그룹의 레이블을 지정하면 이 연습을 마친 후 새 코드 그룹을 쉽게 식별하여 제거할 수 있습니다.

  2. 작업을 수행할지 확인하는 메시지가 표시되면 yes를 입력하고 Enter 키를 누릅니다.

  3. 개발 컴퓨터의 %SystemDrive%\TestDeployDocument 폴더에서 문서를 열고 메시지가 표시되는지 확인합니다.

다음 단계

문서와 어셈블리를 로컬 폴더에 배포하거나 문서와 어셈블리를 모두 네트워크 폴더에 배포할 수도 있습니다. 자세한 내용은 다음 연습을 참조하십시오.

참고 항목

작업

연습: 로컬 폴더에 문서 및 어셈블리 배포(2003 시스템)

연습: 서로 다른 로컬 폴더에 문서 및 어셈블리 배포(2003 시스템)

연습: 네트워크 폴더에 문서 및 어셈블리 배포(2003 시스템)

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

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

개념

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

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

배포 모델(2003 시스템)