若要从 Office 项目中使用 Microsoft Office 应用程序的功能,必须使用应用程序的主互作程序集(PIA)。 PIA 使托管代码能够与 Microsoft Office 应用程序的基于 COM 的对象模型进行交互。
注释
有兴趣开发跨多个平台扩展 Office 体验的解决方案? 查看新的 Office 加载项模型。 与 VSTO 外接程序和解决方案相比,Office 外接程序占用空间较小,可以使用几乎任何 Web 编程技术(如 HTML5、JavaScript、CSS3 和 XML)生成它们。
创建新的 Office 项目时,Visual Studio 会添加对生成项目所需的 PIA 的引用。 在某些情况下,可能需要添加对其他 PIA 的引用(例如,可以在Microsoft Office Excel 的项目中使用 Microsoft Office Word 的功能)。
本文介绍在 Office 项目中使用 Microsoft Office PIA 的以下方面:
有关主互作程序集的详细信息,请参阅 主互作程序集。
用于构建和运行项目的独立主互操作程序集
Visual Studio 在开发计算机上使用不同的 PIA 集。 这些不同的程序集位于以下位置:
程序文件目录中的文件夹
编写代码和生成项目时,将使用此程序集集。 Visual Studio 会自动安装这些程序集。
全局程序集缓存
此程序集集用于某些开发任务,例如运行或调试项目时。 Visual Studio 不会安装和注册这些程序集;你需要自己做。
程序文件目录中的主互操作程序集
安装 Visual Studio 时,PIA 会自动添加到文件系统中全局程序集缓存外部的位置。 创建新项目时,Visual Studio 会自动向项目添加对这些 PIA 副本的引用。 Visual Studio 使用这些 PIA 的副本(而不是全局程序集缓存中的程序集)在开发和生成项目时解析类型引用。
当全局程序集缓存中注册不同版本的 PIA 时,可能会遇到多个开发问题。 添加的 PIA 副本将帮助你避免此类问题。
对于 Visual Studio 2017 及更高版本,这些 PIA 副本将安装到开发计算机上的以下共享位置:
%ProgramFiles%\Microsoft Visual Studio\Shared\Visual Studio Tools for Office\PIA\(或在
%ProgramFiles(x86)%\Microsoft Visual Studio\Shared\Visual Studio Tools for Office\PIA\64 位操作系统上)
注释
对于较旧版本的 Visual Studio,这些 PIA 将安装到 Visual Studio Tools for Office\PIA 文件夹下 %ProgramFiles% 该版本的 Visual Studio 文件夹。
例如: %ProgramFiles(x86)%\Microsoft Visual Studio 14.0\Visual Studio Tools for Office\PIA\
全局程序集缓存中的主要互操作程序集
若要执行某些开发任务,必须在开发计算机上的全局程序集缓存中安装并注册 PIA。 通常,在开发计算机上安装 Office 时,会自动安装 PIA。 有关详细信息,请参阅 配置计算机以开发 Office 解决方案。
最终用户计算机上不需要 Office PIA 才能运行 Office 解决方案。 有关详细信息,请参阅 “设计和创建 Office 解决方案”。
在单个项目中使用多个Microsoft Office 应用程序的功能
Visual Studio 中的每个 Office 项目模板都设计为使用单个 Microsoft Office 应用程序。 若要在多个Microsoft Office 应用程序中使用功能,或使用 Visual Studio 中没有项目的应用程序或组件中的功能,必须添加对所需 PIA 的引用。
在大多数情况下,您应该添加对 Visual Studio 在 %ProgramFiles(x86)%\Microsoft Visual Studio\Shared\Visual Studio Tools for Office\PIA\ 目录下安装的 PIA 的引用。 这些版本的程序集显示在“引用管理器”对话框的“框架”选项卡上。 有关详细信息,请参阅 如何:通过主互操作程序集定位 Office 应用程序。
如果已安装并注册了全局程序集缓存中的 PIA,则这些版本的程序集将显示在“引用管理器”对话框的“COM”选项卡上。 避免添加对这些版本的程序集的引用,因为使用程序集时可能会出现一些开发问题。 例如,如果在全局程序集缓存中注册了不同版本的 PIA,则项目将自动绑定到上次注册的程序集版本,即使你在引用管理器对话框的 COM 选项卡上指定了程序集的不同版本。
注释
当添加一个引用它们的程序集时,某些程序集会自动添加到项目中。 例如,当您添加对 Word、Excel、Outlook、Microsoft Forms 或 Graph 程序集的引用时,便会自动添加对 Office.dll 和 Microsoft.Vbe.Interop.dll 程序集的引用。
Microsoft Office 应用程序的主要互操作程序集
下表列出了可用于 Office 2016、Office 2013 和 Office 2010 的主要互作程序集。
| Office 应用程序或组件 | 主要互操作程序集名称 |
|---|---|
| Microsoft Access 14.0 对象库 Microsoft Access 15.0 对象库 |
Microsoft.Office.Interop.Access.dll |
| Microsoft Office 14.0 Access 数据库引擎对象库 Microsoft Office 15.0 Access 数据库引擎对象库 |
Microsoft.Office.Interop.Access.Dao.dll |
| Microsoft Excel 14.0 对象库 Microsoft Excel 15.0 对象库 |
Microsoft.Office.Interop.Excel.dll |
| Microsoft Graph 14.0 对象库(PowerPoint、Access 和 Word 用于图形) Microsoft Graph 15.0 对象库 |
Microsoft.Office.Interop.Graph.dll |
| Microsoft InfoPath 2.0 类型库(仅适用于 InfoPath 2007) | Microsoft.Office.Interop.InfoPath.dll |
| Microsoft InfoPath XML 互操作程序集(仅适用于 InfoPath 2007) | Microsoft.Office.Interop.InfoPath.Xml.dll |
| Microsoft Office 14.0 对象库(Office 共享功能) Microsoft Office 15.0 对象库(Office 共享功能) |
office.dll |
| Microsoft Office Outlook 视图控件(可用于网页和应用程序访问收件箱) | Microsoft.Office.Interop.OutlookViewCtl.dll |
| Microsoft Outlook 14.0 对象库 Microsoft Outlook 15.0 对象库 |
Microsoft.Office.Interop.Outlook.dll |
| Microsoft PowerPoint 14.0 对象库 Microsoft PowerPoint 15.0 对象库 |
Microsoft.Office.Interop.PowerPoint.dll |
| Microsoft Project 14.0 对象库 Microsoft Project 15.0 对象库 |
Microsoft.Office.Interop.MSProject.dll |
| Microsoft Publisher 14.0 对象库 Microsoft Publisher 15.0 对象库 |
Microsoft.Office.Interop.Publisher.dll |
| Microsoft SharePoint Designer 14.0 Web 对象引用库 | Microsoft.Office.Interop.SharePointDesigner.dll |
| Microsoft SharePoint Designer 14.0 页面对象引用库 | Microsoft.Office.Interop.SharePointDesignerPage.dll |
| Microsoft智能标记 2.0 类型库 说明: Excel 2010 和 Word 2010 中弃用智能标记。 | Microsoft.Office.Interop.SmartTag.dll |
| Microsoft Visio 14.0 类型库 Microsoft Visio 15.0 类型库 |
Microsoft.Office.Interop.Visio.dll |
| Microsoft Visio 14.0 另存为 Web 类型库 Microsoft Visio 15.0 另存为 Web 类型库 |
Microsoft.Office.Interop.Visio.SaveAsWeb.dll |
| Microsoft Visio 14.0 绘图控件类型库 Microsoft Visio 15.0 绘图控件类型库 |
Microsoft.Office.Interop.VisOcx.dll |
| Microsoft Word 14.0 对象库 Microsoft Word 15.0 对象库 |
Microsoft.Office.Interop.Word.dll |
| Microsoft Visual Basic for Applications 扩展性 5.3 | Microsoft.Vbe.Interop.dll |
绑定重定向程序集
在全局程序集缓存中安装和注册 Office PIA 时(通过 Office 或安装 PIA 的可再发行组件包),绑定重定向程序集也仅安装在全局程序集缓存中。 这些程序集可确保在运行时加载主互作程序集的正确版本。
例如,当引用 Office 2010 程序集的解决方案在具有同一主互作程序集的 Office 2013 版本的计算机上运行时时,绑定重定向程序集指示 .NET Framework 运行时加载主互作程序集的 Office 2013 版本。
有关详细信息,请参阅 “如何:启用和禁用自动绑定重定向”。