Visual Studio Tools for Office 런타임 개요
Visual Studio에서 Microsoft Office 개발자 도구를 사용하여 만든 솔루션을 실행하려면 Visual Studio 2010 Tools for Office 런타임이 최종 사용자 컴퓨터에 설치되어 있어야 합니다. 자세한 내용은 방법: 재배포 가능한 Visual Studio Tools for Office 런타임 설치를 참조하세요. Visual Studio 2010 Tools for Office 런타임은 다음 두 가지 주 구성 요소로 구성됩니다.
.NET Framework용 Office 확장. 이러한 구성 요소는 솔루션과 Microsoft Office 애플리케이션 간의 통신 계층을 제공하는 관리되는 어셈블리입니다. 자세한 내용은 .NET Framework용 Office 확장 이해를 참조하세요.
Office 솔루션 로더. 이 구성 요소는 Office 애플리케이션에서 런타임 및 솔루션을 로드하는 데 사용하는 관리되지 않는 DLL 집합입니다. 자세한 내용은 Office 솔루션 로더 이해를 참조하세요.
런타임은 여러 가지 방법으로 설치할 수 있습니다. 런타임을 설치할 때는 컴퓨터의 구성에 따라 각기 다른 런타임 구성 요소가 설치됩니다. 자세한 내용은 Visual Studio Tools for Office 런타임 설치 시나리오를 참조하세요.
.NET Framework용 Office 확장 이해
Visual Studio 2010 Tools for Office 런타임에는 .NET Framework 3.5, .NET Framework 4 이상용 Office 확장이 포함되어 있습니다. .NET Framework의 각 버전을 대상으로 하는 솔루션은 해당 버전에 적절한 확장명을 사용합니다.
이러한 확장은 솔루션에서 Office 애플리케이션을 자동화하고 확장하는 데 사용하는 어셈블리로 구성되어 있습니다. Office 프로젝트를 만들면 Visual Studio에서 프로젝트 형식 및 프로젝트의 대상 .NET Framework에 사용되는 어셈블리에 자동으로 참조를 추가합니다. Office 확장의 어셈블리에 대한 자세한 내용은 Visual Studio Tools for Office 런타임의 어셈블리를 참조하세요.
Office 확장의 디자인 차이점
.NET Framework 3.5용 Office 확장에서 사용하는 대부분의 형식은 클래스입니다. Visual Studio Tools for Office 런타임의 이전 버전에 포함된 같은 클래스가 있습니다. 반대로 .NET Framework 4 이상용 Office 확장에서 사용하는 대부분의 형식은 인터페이스입니다. 예를 들어 .NET Framework 4 이상을 대상으로 하는 경우 Worksheet 및 Document 형식은 클래스가 아닌 인터페이스입니다.
대부분의 경우 Office 솔루션에서 작성하는 코드는 솔루션이 .NET Framework 3.5 또는 .NET Framework 4를 대상으로 하는지 여부에 관계없이 동일합니다. 그러나 다른 버전의 .NET Framework를 대상으로 하는 경우 일부 기능에는 다른 코드가 필요합니다. 자세한 내용은 .NET Framework 4 이상으로 Office 솔루션 마이그레이션을 참조하세요.
.NET Framework 4 이상용 Office 확장의 인터페이스
.NET Framework 4 이상용 Office 확장에 있는 대부분의 인터페이스는 사용자 코드에서 구현되지 않습니다. 직접 구현할 수 있는 인터페이스에만 I 문자(예: ISmartTagExtension)로 시작하는 이름이 있습니다.
I 문자로 시작하지 않는 모든 인터페이스는 Visual Studio 2010 Tools for Office 런타임에 의해 내부적으로 구현되며 향후 릴리스에서 이러한 인터페이스가 변경될 수 있습니다. 이러한 인터페이스를 구현하는 개체를 만들려면 Globals.Factory
개체에서 제공하는 메서드를 프로젝트에 사용합니다. 예를 들어 SmartTag 인터페이스를 구현하는 개체를 가져오려면 Globals.Factory.CreateSmartTag
메서드를 사용합니다. Globals.Factory
에 대한 자세한 내용은 Office 프로젝트의 개체에 대한 전역 액세스를 참조하세요.
.NET Framework 4 이상을 대상으로 하는 프로젝트에서 동일 형식 및 포함된 형식 사용
.NET Framework 4 이상용 Office 확장의 개체 모델은 인터페이스 기반이므로 Visual Studio에서 Visual C# 및 Visual Basic 모두에 동일 형식 기능을 사용하여 Visual Studio Tools for Office 런타임의 형식 정보를 솔루션에 포함할 수 있습니다. 이 기능을 사용하면 Office 솔루션과 Visual Studio Tools for Office 런타임이 서로 독립적인 버전이 됩니다. 예를 들어 솔루션에서 Document 인터페이스를 포함된 형식으로 사용하고 런타임의 향후 버전에서 Document 인터페이스에 멤버를 추가하는 경우 해당 솔루션은 런타임의 향후 버전에서도 계속 작동합니다. 솔루션에서 Document 인터페이스를 포함된 형식으로 사용하지 않는 경우 해당 솔루션은 런타임의 향후 버전에서 더 이상 작동하지 않습니다.
.NET Framework 4 이상을 대상으로 하는 Office 프로젝트를 만드는 경우 기본적으로 동일 형식 기능이 사용되지 않습니다. 이 기능이 사용되도록 설정하려면 프로젝트에서 다음 어셈블리 참조 중 하나의 Interop 형식 포함 속성을 True로 설정합니다.
Microsoft.Office.Tools.dll
Microsoft.Office.Tools.Common.dll
Microsoft.Office.Tools.Excel.dll
Microsoft.Office.Tools.Outlook.dll
Microsoft.Office.Tools.Word.dll
이와 같이 변경하면 프로젝트를 만들 때 해당 프로젝트에서 사용되는 모든 런타임 형식에 대한 형식 정보가 솔루션 어셈블리에 포함됩니다. 런타임에 솔루션에서 사용하는 정보는 참조된 어셈블리의 형식 정보가 아니라 이와 같은 포함된 형식 정보입니다.
Office 솔루션 로더 이해
Visual Studio Tools for Office Runtime에는 Office 애플리케이션에서 런타임 및 Office 솔루션을 로드하는 데 사용하는 관리되지 않는 DLL이 몇 개 포함되어 있습니다. 이러한 DLL에 대해 사용자가 직접 작업을 수행할 필요는 없지만 해당 DLL의 용도를 알고 있으면 Office 솔루션의 아키텍처를 보다 잘 이해할 수 있습니다.
이러한 구성 요소가 로드 프로세스 중에 사용되는 방식은 문서 수준 사용자 지정 아키텍처 및 VSTO 추가 기능의 아키텍처를 참조하세요.
vstoee.dll
사용자가 문서 수준 사용자 지정을 열거나 VSTO 추가 기능을 시작하면 Office 애플리케이션에서 VSTOEE.dll을 호출하여 Visual Studio Tools for Office 런타임을 로드하는 데 필요한 작업을 수행합니다.
VSTOEE.dll은 올바른 버전의 Visual Studio Tools for Office 런타임이 솔루션과 설치된 Office 버전에 로드되는지 확인합니다. 같은 컴퓨터에 여러 버전의 Visual Studio Tools for Office 런타임을 설치할 수 있지만 VSTOEE.dll 인스턴스는 한 번에 하나만 설치됩니다. 이 인스턴스는 컴퓨터에 설치된 최신 버전의 런타임과 함께 제공된 VSTOEE.dll입니다. 다른 솔루션에 사용할 수 있는 다양한 버전의 Visual Studio Tools for Office 런타임에 대한 자세한 내용은 다른 버전의 Microsoft Office에서 솔루션 실행을 참조하세요.
VSTOLoader.dll
VSTOEE.dll이 적절한 버전의 Visual Studio Tools for Office 런타임을 로드한 후 VSTOLoader.dll은 솔루션 어셈블리를 로드하는 데 필요한 대부분의 작업을 수행합니다. VSTOLoader.dll에서는 다음 몇 가지 작업을 수행합니다.
각 솔루션 어셈블리의 애플리케이션 도메인을 만듭니다.
일련의 보안 검사를 수행하여 솔루션 어셈블리에 실행 권한이 있는지 확인합니다.
솔루션에 필요한 버전의 .NET Framework용 Office 확장을 로드합니다.
VSTOLoader.dll에서는 VSTO 추가 기능과 관련된 다음 몇 가지 작업도 수행합니다.
IDTExtensibility2 인터페이스를 구현합니다. IDTExtensibility2 는 Microsoft Office 애플리케이션의 모든 VSTO 추가 기능에서 구현해야 하는 COM 인터페이스입니다. 이 인터페이스는 애플리케이션에서 VSTO 추가 기능과 통신하기 위해 호출하는 메서드를 정의합니다.
IManagedAddin 인터페이스를 구현합니다. 이 인터페이스는 Office 애플리케이션에서 VSTO 추가 기능을 로드하는 데 사용됩니다. 자세한 내용은 IManagedAddin 인터페이스를 참조하세요.
런타임 32비트 및 64비트 버전 이해
Visual Studio 2010 Tools for Office 런타임에는 64비트 및 32비트 버전이 각각 있습니다. 이러한 런타임 버전은 64비트 및 32비트 버전 Office에서 솔루션을 실행하는 데 사용됩니다. 다음 표에서는 Windows와 Office의 각 조합에 필요한 런타임 버전을 보여 줍니다.
Windows 버전 | Microsoft Office 버전 | 필요한 Visual Studio Tools for Office 런타임 버전 |
---|---|---|
32비트 | 32비트 | 32비트 |
64비트 | 32비트 | 64비트 |
64비트 | 64비트 | 64비트 |
Office를 설치하는 경우 필요한 버전의 Visual Studio Tools for Office 런타임이 Office와 함께 설치됩니다. 예를 들어 Office 64비트 버전을 Windows의64비트 버전에 설치하면 Visual Studio Tools for Office 런타임 64비트 버전도 설치됩니다. Office와 함께 Visual Studio Tools for Office 런타임을 설치하는 방법에 대한 자세한 내용은 Visual Studio Tools for Office 런타임 설치 시나리오를 참조하세요.
Office의 64비트 버전은 Visual Studio 2008에서 2007 Microsoft Office system용 프로젝트 템플릿을 사용하여 만든 Office 솔루션도 실행할 수 있습니다. 그러나 Visual Studio 2008에서 Microsoft Office 2003용 프로젝트 템플릿을 사용하여 만든 Office 솔루션 또는 Visual Studio 2005를 사용하여 만든 Office 솔루션은 실행할 수 없습니다. 자세한 내용은 다양한 버전의 Microsoft Office용 솔루션 실행을 참조하세요.
Visual Studio 2010 Tools for Office 런타임 복구
런타임을 복구해야 하는 경우 제어판에서 프로그램 및 기능 이나 프로그램 추가/제거 를 열고 프로그램 목록에서 Microsoft Visual Studio 2010 Tools for Office Runtime 을 선택한 다음 제거를 클릭합니다. 실행되는 설치 프로그램에서 런타임을 복구할 수 있습니다. 변경을 클릭하면 런타임을 복구하기 위한 옵션이 표시되지 않습니다.