다음을 통해 공유


문서 수준 사용자 지정 아키텍처

Visual Studio 2010에는 Microsoft Office Word 및 Microsoft Office Excel용 문서 수준 사용자 지정을 만들기 위한 프로젝트가 포함되어 있습니다. 이 항목에서는 문서 수준 사용자 지정의 다음 사항에 대해 설명합니다.

  • 사용자 지정 이해

  • 사용자 지정의 구성 요소

  • 사용자 지정이 Microsoft Office 응용 프로그램과 작동하는 방식

적용 대상: 이 항목의 정보는 Excel 2007 및 Excel 2010, Word 2007 및 Word 2010의 문서 수준 프로젝트에 적용됩니다. 자세한 내용은 Office 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.

문서 수준 사용자 지정을 만드는 방법에 대한 일반적인 내용은 Office 솔루션 개발 개요, Word용 문서 수준 사용자 지정 프로그래밍 시작Excel용 문서 수준 사용자 지정 프로그래밍 시작를 참조하십시오.

사용자 지정 이해

Visual Studio의 Office 개발자 도구를 사용하여 문서 수준 사용자 지정을 빌드할 때는 특정 문서와 연결되는 관리 코드 어셈블리를 만듭니다. 연결된 어셈블리가 문서 또는 통합 문서에 있을 경우 관리 코드 확장이 포함되어 있다고 합니다. 자세한 내용은 Office 솔루션의 어셈블리 개요를 참조하십시오.

문서를 열면 Microsoft Office 응용 프로그램에서 어셈블리를 로드합니다. 어셈블리가 로드된 후에는 문서가 열려 있는 동안 사용자 지정에서 이벤트에 응답할 수 있습니다. 사용자 지정에서는 문서가 열려 있는 동안 개체 모델을 호출하여 응용 프로그램을 자동화 및 확장하며 .NET Framework의 클래스를 사용할 수도 있습니다.

어셈블리와 응용 프로그램의 COM 구성 요소 사이의 통신은 응용 프로그램의 주 interop 어셈블리를 통해 이루어집니다. 자세한 내용은 Office 주 Interop 어셈블리Office 솔루션 개발 개요를 참조하십시오.

사용자가 여러 문서 수준 사용자 지정을 동시에 열면 각 어셈블리는 서로 다른 응용 프로그램 도메인에 로드됩니다. 따라서 한 솔루션이 올바르지 않게 동작해도 다른 솔루션이 잘못 동작하게 되지 않습니다. 문서 수준 사용자 지정은 단일 응용 프로그램 도메인의 단일 문서에서 작동합니다. 문서 간의 통신을 위해 디자인되지는 않았습니다. 응용 프로그램 도메인에 대한 자세한 내용은 응용 프로그램 도메인를 참조하십시오.

참고

Visual Studio의 Office 개발자 도구를 사용하여 만든 문서 수준 사용자 지정은 최종 사용자가 응용 프로그램을 시작할 경우에만 사용됩니다. 자동화 기능을 사용하는 등 프로그래밍 방식으로 응용 프로그램을 시작하면 사용자 지정이 예상대로 작동하지 않을 수 있습니다.

디자인 타임 및 런타임 환경

문서 수준 사용자 지정의 아키텍처를 이해하는 데는 솔루션을 디자인하고 실행하는 환경을 이해하는 것이 도움이 됩니다.

디자인 타임

디자인 타임 환경에는 다음 단계가 포함됩니다.

  1. 개발자가 Visual Studio에서 문서 수준 프로젝트를 만듭니다. 프로젝트에는 문서에 숨겨진 채 실행되는 어셈블리와 문서가 포함됩니다. 문서가 이미 있을 수도 있고(디자이너가 만든 경우 등) 프로젝트와 함께 새 문서를 만들 수도 있습니다.

  2. 디자이너(프로젝트를 만드는 개발자 또는 기타 관련자)가 최종 사용자를 위한 문서의 최종 모양 및 느낌을 만듭니다.

런타임

런타임 환경에는 다음 단계가 포함됩니다.

  1. 최종 사용자가 관리 코드 확장이 있는 문서나 통합 문서를 엽니다.

  2. 컴파일된 어셈블리가 문서 또는 통합 문서에 로드됩니다.

  3. 사용자가 문서 또는 통합 문서에서 작업할 때 어셈블리에서 이벤트에 응답합니다.

개발자 및 최종 사용자의 관점 비교

개발자는 주로 Visual Studio에서 작업하고 최종 사용자는 Word나 Excel에서 작업하므로 문서 수준 사용자 지정을 두 가지 관점에서 이해하는 것이 좋습니다.

개발자의 관점

최종 사용자의 관점

개발자는 Visual Studio를 사용하여 Word와 Excel에 액세스할 수 있는 코드를 작성합니다.

개발자가 Word 또는 Excel을 실행하는 실행 파일을 만드는 것처럼 보일 수 있지만 실제로 이 프로세스는 다른 방식으로 진행됩니다. 문서는 어셈블리와 연결되고 해당 어셈블리에 대한 포인터가 포함됩니다. 문서를 열면 Word 또는 Excel을 통해 어셈블리가 검색되고 모든 처리된 이벤트에 대한 응답으로 코드가 실행됩니다.

솔루션을 사용하는 사용자는 다른 Microsoft Office 파일을 열 때와 마찬가지로 문서 또는 통합 문서를 열기만 하면 됩니다. 또는 서식 파일을 통해 새 문서를 만들 수도 있습니다.

어셈블리에서는 문서 또는 통합 문서에 현재 데이터를 자동으로 입력하거나 정보를 요청하는 대화 상자를 표시하는 것과 같은 사용자 지정을 제공합니다.

문서 수준 사용자 지정에 지원되는 문서 형식

사용자 지정 프로젝트를 만드는 경우 프로젝트에 사용할 문서의 형식을 선택할 수 있습니다. 자세한 내용은 방법: Visual Studio에서 Office 프로젝트 만들기를 참조하십시오.

다음 표에서는 Excel 및 Word용 문서 수준 사용자 지정에 사용할 수 있는 문서 형식을 보여 줍니다.

Excel

Word

Excel 통합 문서(.xlsx)

Excel 매크로 사용 통합 문서(.xlsm)

Excel 이진 통합 문서(.xlsb)

Excel 97 - 2003 통합 문서(.xls)

Excel 서식 파일(.xltx)

Excel 매크로 사용 서식 파일(.xltm)

Excel 97 - 2003 서식 파일(.xlt)

Word 문서(.docx)

Word 매크로 사용 문서(.docm)

Word 97-2003 문서(.doc)

Word 서식 파일(.dotx)

Word 매크로 사용 서식 파일(.dotm)

Word 97-2003 서식 파일(.dot)

관리 코드 확장은 지원되는 형식의 문서에 대해서만 디자인해야 합니다. 그렇지 않으면 문서를 응용 프로그램에서 여는 경우 특정 이벤트가 발생하지 않을 수 있습니다. 예를 들어 관리 코드 확장을 Excel XML 스프레드시트 형식이나 웹 페이지(.htm, .html) 형식으로 저장된 통합 문서에 사용하면 Open 이벤트가 발생하지 않습니다.

파일 확장명이 .xml인 Word 문서 지원

문서 수준 프로젝트 템플릿을 사용하여 다음 파일 형식을 기반으로 하는 프로젝트를 만들 수는 없습니다.

  • Word XML 문서(*xml)

  • Word 2003 XML 문서(*xml)

최종 사용자가 이러한 파일 형식의 사용자 지정을 사용할 수 있도록 하려면 위의 표에 지정된 지원되는 파일 형식 중 하나를 사용하는 사용자 지정을 빌드하고 배포합니다. 사용자 지정을 설치한 후 최종 사용자는 문서를 Word XML 문서(*xml) 형식 또는 Word 2003 XML 문서(*xml) 형식으로 저장할 수 있으며 사용자 지정은 계속해서 예상대로 작동합니다.

사용자 지정의 구성 요소

사용자 지정의 주요 구성 요소는 문서 및 어셈블리입니다. 이러한 구성 요소 외에도 Microsoft Office 응용 프로그램에서 사용자 지정을 검색하여 로드하는 방식에 중요한 역할을 하는 다른 부분이 여러 개 있습니다.

배포 매니페스트 및 응용 프로그램 매니페스트

사용자 지정에서는 배포 매니페스트 및 응용 프로그램 매니페스트를 사용하여 최신 버전의 사용자 지정 어셈블리를 식별하고 로드합니다. 배포 매니페스트는 현재 응용 프로그램 매니페스트를 가리킵니다. 응용 프로그램 매니페스트는 사용자 지정 어셈블리를 가리키며 어셈블리에서 실행할 진입점 클래스를 지정합니다. 자세한 내용은 Office 솔루션의 응용 프로그램 및 배포 매니페스트를 참조하십시오.

Visual Studio Tools for Office 런타임

Visual Studio의 Office 개발자 도구를 사용하여 만든 문서 수준 사용자 지정을 실행하려면 최종 사용자 컴퓨터에 Microsoft Visual Studio Tools for Office Runtime이 설치되어 있어야 합니다. Microsoft Visual Studio Tools for Office Runtime에는 사용자 지정 어셈블리를 로드하는 관리되는 구성 요소 및 일련의 관리되는 어셈블리가 포함되어 있습니다. 관리되는 어셈블리에서는 사용자 지정 코드에서 호스트 응용 프로그램을 자동화 및 확장하는 데 사용하는 개체 모델을 제공합니다.

자세한 내용은 Visual Studio Tools for Office 런타임 개요를 참조하십시오.

사용자 지정이 Microsoft Office 응용 프로그램과 작동하는 방식

사용자가 Microsoft Office 사용자 지정의 일부인 문서를 열면 응용 프로그램에서는 문서에 연결된 배포 매니페스트를 사용하여 최신 버전의 사용자 지정 어셈블리를 찾아 로드합니다. 배포 매니페스트의 위치는 _AssemblyLocation이라는 사용자 지정 문서 속성에 저장됩니다. 이 위치를 식별하는 문자열은 솔루션을 빌드할 때 해당 속성에 삽입됩니다.

배포 매니페스트는 응용 프로그램 매니페스트를 가리키며 응용 프로그램 매니페스트는 최신 어셈블리를 가리킵니다. 자세한 내용은 Office 솔루션의 응용 프로그램 및 배포 매니페스트를 참조하십시오.

다음 그림에서는 문서 수준 사용자 지정의 기본 아키텍처를 보여 줍니다.

사용자 지정 아키텍처

2007 Office 사용자 지정 아키텍처

참고

.NET Framework 4를 대상으로 하는 Office 솔루션에서 솔루션은 PIA를 직접 호출하지 않고 솔루션 어셈블리에 포함된 PIA 형식 정보를 사용하여 호스트 응용 프로그램의 개체 모델을 호출합니다. 자세한 내용은 Office 솔루션 디자인 및 만들기를 참조하십시오.

로드 프로세스

사용자가 Microsoft Office 솔루션의 일부인 문서를 열면 다음 단계가 수행됩니다.

  1. Microsoft Office 응용 프로그램에서 사용자 지정 문서 속성을 검사하여 해당 문서와 연결된 관리 코드 확장이 있는지 여부를 확인합니다. 자세한 내용은 사용자 지정 문서 속성 개요를 참조하십시오.

  2. 관리 코드 확장이 있는 경우 응용 프로그램에서는 VSTOLoader.dll을 로드하는 VSTOEE.dll을 로드합니다. 이들 DLL은 Visual Studio 2010 Tools for Office Runtime의 로더 구성 요소인 관리되지 않는 DLL입니다. 자세한 내용은 Visual Studio Tools for Office 런타임 개요를 참조하십시오.

  3. VSTOLoader.dll은 .NET Framework를 로드하고 Microsoft Visual Studio Tools for Office Runtime의 관리되는 부분을 시작합니다.

  4. 문서가 로컬 컴퓨터가 아닌 위치에서 열린 경우 Microsoft Visual Studio Tools for Office Runtime에서는 문서의 위치가 해당 특정 Office 응용 프로그램에 대한 보안 센터 설정신뢰할 수 있는 위치 목록에 있는지 확인합니다. 해당 위치가 신뢰할 수 있는 위치 목록에 없는 경우 사용자 지정은 신뢰되지 않으며 로드 프로세스가 중지됩니다.

  5. Microsoft Visual Studio Tools for Office Runtime에서는 솔루션이 아직 설치되지 않은 경우 해당 솔루션을 설치하고, 최신 응용 프로그램 및 배포 매니페스트를 다운로드하고, 일련의 보안 검사를 수행합니다. 자세한 내용은 Office 솔루션 보안을 참조하십시오.

  6. 사용자 지정이 실행할 수 있는 것으로 신뢰된 경우 Microsoft Visual Studio Tools for Office Runtime에서 배포 매니페스트 및 응용 프로그램 매니페스트를 사용하여 어셈블리 업데이트를 확인합니다. 새 버전의 어셈블리를 사용할 수 있으면 런타임에서는 새 버전의 어셈블리를 클라이언트 컴퓨터의 ClickOnce 캐시로 다운로드합니다. 자세한 내용은 Office 솔루션 배포를 참조하십시오.

  7. Microsoft Visual Studio Tools for Office Runtime에서 사용자 지정 어셈블리를 로드할 새 응용 프로그램 도메인을 만듭니다.

  8. Microsoft Visual Studio Tools for Office Runtime에서 사용자 지정 어셈블리를 응용 프로그램 도메인에 로드합니다.

  9. Microsoft Visual Studio Tools for Office Runtime에서 사용자 지정 어셈블리의 Startup 이벤트 처리기를 호출합니다. 자세한 내용은 Office 프로젝트의 이벤트를 참조하십시오.

참고 항목

개념

응용 프로그램 수준 추가 기능 아키텍처

Visual Studio Tools for Office 런타임 개요

사용자 지정 문서 속성 개요

문서 수준 사용자 지정의 캐시된 데이터

기타 리소스

Visual Studio의 Office 솔루션 아키텍처

Office 솔루션 보안

Office 솔루션 디자인 및 만들기