若要在 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 解决方案加载程序。 此组件是一组非托管 DLL,Office 应用程序使用它们来加载运行时和您的解决方案。 有关详细信息,请参阅 “了解 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 时,特定功能需要不同的代码。 有关详细信息,请参阅 将 Office 解决方案迁移到 .NET Framework 4 或更高版本。
.NET Framework 4 或更高版本的 Office 扩展中的接口
.NET Framework 4 或更高版本的 Office 扩展中的大多数接口不是由用户代码实现的。 您可以直接实现的接口只有那些名称以字母 I开头的,例如ISmartTagExtension。
不以 字母开头 的所有接口都是由 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 项目时,不会启用类型等效功能。 如果要启用此功能,请将项目中以下任何程序集引用的 嵌入互作类型 属性设置为 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 解决方案加载程序
Office 应用程序使用 Visual Studio Tools for Office 运行时中的多个非托管 DLL 来加载运行时和 Office 解决方案。 尽管你永远不必直接使用这些 DLL,但了解这些 DLL 的目的可以帮助你更好地了解 Office 解决方案的体系结构。
有关在加载过程中如何使用这些组件的信息,请参阅 文档级自定义的体系结构 和 VSTO 外接程序的体系结构。
VSTOEE.dll
当用户打开文档级自定义或启动 VSTO 外接程序时,Office 应用程序将调用 VSTOEE.dll 以执行加载 Visual Studio Tools for Office 运行时所需的任务。
VSTOEE.dll 确保为解决方案和已安装的 Office 版本加载了正确的 Visual Studio Tools for Office 运行时版本。 尽管可以在同一台计算机上安装多个版本的 Visual Studio Tools for Office 运行时,但一次只安装一个 VSTOEE.dll 实例。 这是计算机上安装的最新版本运行时随附的 VSTOEE.dll 。 有关可用于其他解决方案的不同版本的 Visual Studio Tools for Office 运行时的详细信息,请参阅 不同版本的 Microsoft Office 中的运行解决方案。
VSTOLoader.dll
VSTOEE.dll 加载适用于 Office 运行时的 Visual Studio Tools 的相应版本后, 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 的版本 | Office 运行时所需的 Visual Studio Tools 版本 |
|---|---|---|
| 32 位 | 32 位 | 32 位 |
| 64-bit | 32 位 | 64-bit |
| 64-bit | 64-bit | 64-bit |
安装 Office 时,将随 Office 一起安装 Visual Studio Tools for Office 运行时所需的版本。 例如,在 64 位版本的 Windows 上安装 64 位版本的 Office 时,还会安装 64 位版本的 Visual Studio Tools for Office 运行时。 有关使用 Office 安装 Visual Studio Tools for Office 运行时的详细信息,请参阅 Visual Studio Tools for Office 运行时安装方案。
64 位版本的 Office 还可以运行在 Visual Studio 2008 中使用 2007 Microsoft Office 系统的项目模板创建的 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 ,然后单击“ 卸载”。 运行安装程序可以修复运行环境。 如果单击“ 更改”,则不会提供修复运行时的选项。