방법: 문서에 관리 코드 확장 연결(2003 시스템)

업데이트: 2007년 11월

적용 대상

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

프로젝트 형식

  • 문서 수준 프로젝트

Microsoft Office 버전

  • Microsoft Office 2003

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

Visual Studio Tools for Office 솔루션 어셈블리를 기존의 Microsoft Office Word 2003 문서 또는 Microsoft Office Excel 2003 통합 문서에 연결할 수 있습니다. 문서나 통합 문서는 Visual Studio Tools for Office에서 지원하는 파일 형식일 수 있습니다. 자세한 내용은 문서 수준 사용자 지정 아키텍처를 참조하십시오.

아직 Visual Studio Tools for Office 사용자 지정이 설정되지 않은 문서에 솔루션 어셈블리를 연결하는 경우 Visual Studio Tools for Office 런타임에서는 자동으로 문서에 런타임 저장소 컨트롤을 만듭니다. 자세한 내용은 런타임 저장소 컨트롤 개요를 참조하십시오.

참고:

솔루션 어셈블리가 문서에 있을 것으로 예상하는 컨트롤이 지정한 문서에 포함되어 있지 않으면 사용자가 문서를 열 때 해당 어셈블리가 로드되지 못합니다.

솔루션 어셈블리를 문서에 연결하는 두 가지 방법이 있습니다.

  • 사용자 지정 문서 속성을 문서 자체에 수동으로 설정합니다.

  • ServerDocument 클래스를 사용하여 프로그래밍 방식으로 어셈블리를 연결합니다.

사용자 지정 문서 속성 사용

사용자 지정 문서 속성 _AssemblyName 및 _AssemblyLocation을 수동으로 설정하여 Visual Studio Tools for Office 솔루션 어셈블리를 Word 또는 Excel 문서에 연결할 수 있습니다. 자세한 내용은 사용자 지정 문서 속성 개요를 참조하십시오.

다음 프로시저에서는 이미 솔루션 어셈블리가 배포되었고 솔루션에서 배포 매니페스트를 사용한다고 가정합니다. 자세한 내용은 문서 수준 사용자 지정 배포(2003 시스템)를 참조하십시오.

사용자 지정 문서 속성을 설정하여 솔루션 어셈블리를 연결하려면

  1. Word나 Excel에서 문서를 엽니다.

  2. 파일 메뉴에서 속성을 클릭한 다음 사용자 지정 탭을 클릭합니다.

  3. _AssemblyName 속성을 설정합니다.

    1. _AssemblyName이 속성 목록에 나타나면 _AssemblyName을 선택하고 상자에 별표(*)를 입력합니다.

    2. _AssemblyName이 목록에 없으면 이름 상자에 _AssemblyName을 입력하고 상자에 별표(*)를 입력한 다음 추가를 클릭합니다.

  4. _AssemblyLocation 속성을 설정합니다.

    1. _AssemblyLocation이 속성 목록에 나타나면 _AssemblyLocation을 선택하고 상자에 배포 매니페스트의 전체 경로를 입력합니다.

    2. _AssemblyLocation이 목록에 없으면 이름 상자에 _AssemblyLocation을 입력하고 상자에 배포 매니페스트의 전체 경로를 입력한 다음 추가를 클릭합니다.

    배포 매니페스트의 위치는 디스크 경로(C:\deploy\Document1.application), 파일 공유(\\server\Document1.application) 또는 웹 사이트(https://www.contoso.com/Document1.application)가 될 수 있습니다.

    참고:

    사용자 지정 문서 속성의 값은 255자를 포함할 수 있습니다. 매니페스트 경로가 255자가 넘는 경우 _AssemblyLocation0이라는 속성을 만들고 이 속성을 경로의 처음 255자로 설정합니다. 그런 다음 _AssemblyLocation1이라는 속성을 만들고 이 속성을 매니페스트 경로의 나머지 문자로 설정합니다.

  5. 확인을 클릭한 다음 문서를 저장하고 닫습니다.

    다음에 문서가 열리고 저장될 때 Visual Studio Tools for Office 런타임에서는 솔루션 어셈블리를 문서에 연결하고 필요하면 런타임 저장소 컨트롤을 만듭니다. Visual Studio Tools for Office 런타임은 또한 _AssemblyLocation 사용자 지정 문서 속성의 값을 런타임 저장소 컨트롤의 GUID로 설정합니다. 자세한 내용은 런타임 저장소 컨트롤 개요를 참조하십시오.

    참고:

    Visual Studio Tools for Office 런타임이 설치된 컴퓨터에서 문서를 열고 저장해야 합니다. 자세한 내용은 방법: Visual Studio Tools for Office 런타임 설치를 참조하십시오. 

ServerDocument 클래스 사용

ServerDocument 클래스의 AddCustomization 메서드를 사용하여 Visual Studio Tools for Office 솔루션 어셈블리를 Word 또는 Excel 문서에 연결할 수 있습니다. ServerDocument 클래스를 사용하는 코드를 Visual Studio Tools for Office 솔루션이 아니라 Windows Forms 프로젝트 등의 새 프로젝트에 넣어야 합니다. 또한 어셈블리를 연결할 대상 문서를 닫아야 하고 그 문서는 Word(Word 문서의 경우) 또는 Excel(Excel 통합 문서의 경우)이 설치된 컴퓨터에 있어야 합니다.

다음 프로시저에서는 이미 솔루션 어셈블리가 배포되었고 솔루션에서 배포 매니페스트를 사용한다고 가정합니다. 자세한 내용은 문서 수준 사용자 지정 배포(2003 시스템)를 참조하십시오.

ServerDocument 클래스를 사용하여 문서에 솔루션 어셈블리를 연결하려면

  1. 새 Windows Forms 프로젝트를 만듭니다.

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

  3. 런타임에 대한 Imports 또는 using 문을 코드 파일의 맨 위에 추가합니다.

    Imports Microsoft.VisualStudio.Tools.Applications.Runtime
    
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    
  4. ServerDocument 클래스의 정적 AddCustomization 메서드를 호출하고 솔루션 문서 경로, 어셈블리 이름 및 배포 매니페스트 경로를 매개변수에 지정합니다. 다음 코드에서는 C:\WordDocument1 폴더에 있는 WordDocument1.doc라는 Word 문서에 어셈블리를 연결하고, 어셈블리 및 배포 메니페스트는 네트워크 공유 \\deployserver\WordDocument1\에 있다고 가정합니다.

    Private Sub AddNewCustomization()
    
        Dim fileName As String = "C:\WordDocument1\WordDocument1.doc"
    
        If Not ServerDocument.IsCustomized(fileName) Then
    
            Dim assemblyName As String = "\\deployserver\WordDocument1\WordDocument1.dll"
            Dim manifestPath As String = "\\deployserver\WordDocument1\WordDocument1.application"
            Dim applicationVersion As String = "1.0.0.0"
    
            ServerDocument.AddCustomization( _
                fileName, assemblyName, manifestPath, applicationVersion, False)
    
        Else
            System.Windows.Forms.MessageBox.Show( _
                "The specified document is already customized.")
        End If
    End Sub
    
    private void AddNewCustomization()
    {
        string fileName = @"C:\WordDocument1\WordDocument1.doc";
    
        if (!ServerDocument.IsCustomized(fileName))
        {
            string assemblyName = @"\\deployserver\WordDocument1\WordDocument1.dll";
            string manifestPath = @"\\deployserver\WordDocument1\WordDocument1.application";
            string applicationVersion = "1.0.0.0";
    
            ServerDocument.AddCustomization(
                fileName, assemblyName, manifestPath, applicationVersion, false);
        }
        else
        {
            System.Windows.Forms.MessageBox.Show(
                "The specified document is already customized.");
        }
    }
    

    Visual Studio Tools for Office 런타임은 솔루션 어셈블리를 문서에 연결하고 필요하면 런타임 저장소 컨트롤을 만듭니다. 자세한 내용은 런타임 저장소 컨트롤 개요를 참조하십시오.

참고 항목

작업

방법: ServerDocument 클래스의 두 버전을 모두 사용하는 코드 작성

방법: 문서에서 관리 코드 확장 제거(2003 시스템)

방법: 문서에서 관리 코드 확장 제거(2007 시스템)

방법: 문서에 관리 코드 확장 연결(2007 시스템)

개념

ServerDocument 클래스를 사용하여 서버의 문서 관리

Office 솔루션의 응용 프로그램 및 배포 매니페스트

런타임 저장소 컨트롤 개요