面向 .NET Framework 4 的 Office 项目设计的更改

更新:2010 年 5 月

Visual Studio 2010 引入了对面向 .NET Framework 4 的 Office 项目设计的一些更改。 如果您熟悉以前版本的 Visual Studio 中的 Office 项目,则在开发面向 .NET Framework 4 的 Office 项目之前,应了解这些更改。 如果您要将现有项目更新为面向 .NET Framework 4,则应了解若干重大更改。

了解 Visual Studio 2010 Tools for Office Runtime 的基于接口的设计

开发面向 .NET Framework 4 的 Office 项目时,在 Visual Studio 2010 Tools for Office Runtime中使用的大多数类型都是接口。 这是对以前版本的 Visual Studio Tools for Office Runtime 的主要更改,以前版本中的这些类型都是类。 例如,如果面向的是 .NET Framework 4,则 WorksheetDocument 类型是接口而不是类。 有关更多信息,请参见 Visual Studio Tools for Office Runtime 概述

对于可以在以前版本的 Visual Studio Tools for Office Runtime中直接实例化的任何类型,现在可以使用 Globals.Factory 对象的方法来获取这些类型的实例。 例如,若要获取实现 SmartTag 接口的对象,请使用 Globals.Factory.CreateSmartTag 方法。 有关更多信息,请参见下列主题:

Office 项目中的新基类

Visual Studio 2010 Tools for Office Runtime的基于接口的新设计会影响 Office 项目中生成的类,如 ThisDocument、ThisWorkbook 和 ThisAddIn。 在面向 .NET Framework 3.5 和以前版本的 Framework 的 Office 项目中,这些生成的类派生自 Visual Studio Tools for Office Runtime中的类(如 Microsoft.Office.Tools.Word.DocumentMicrosoft.Office.Tools.Excel.WorksheetMicrosoft.Office.Tools.AddIn)。 在面向 .NET Framework 4 的项目中,这些 Visual Studio Tools for Office Runtime类现在是接口。 因此,Office 项目中生成的类不再从这些类派生其实现, 而是派生自新的基类,如 DocumentBaseWorksheetBaseAddInBase。 有关更多信息,请参见应用程序级外接程序编程对文档级自定义项进行编程

基类不属于 Visual Studio Tools for Office Runtime可再发行组件。 相反,基类在 Visual Studio 2010 附带的实用工具程序集中进行定义。 这些程序集在您生成 Office 项目时会复制到输出文件夹,并且必须随解决方案一起部署。 有关这些实用工具程序集的更多信息,请参见 Visual Studio Tools for Office Runtime 中的程序集

重定向到 .NET Framework 4 的 Office 项目中的重大更改

下表列出了在重定向到 .NET Framework 4 的 Office 项目中可能遇到的一些主要重大更改。 有关更多详细信息,请参见将 Office 解决方案迁移到 .NET Framework 4

重大更改

结果

Office 项目中不再使用或支持 SecurityTransparentAttribute

必须从 Office 项目(从 Visual Studio 2008 升级)中的 AssemblyInfo 代码文件中移除此特性。 有关更多信息,请参见运行迁移到 .NET Framework 4 的 Office 项目所需的更改

Excel 项目中不再使用或支持 ExcelLocale1033Attribute

必须从 Excel 项目中的 AssemblyInfo 代码文件中移除此特性。 有关更多信息,请参见更新迁移到 .NET Framework 4 的 Excel 和 Word 项目

“功能区(可视化设计器)”项目项的编程模型已更改。

必须修改项目中的任何功能区项的代码隐藏文件。 还必须修改在运行时实例化功能区控件、处理功能区事件或以编程方式设置功能区组件的位置的任何代码。 有关更多信息,请参见更新迁移到 .NET Framework 4 的 Office 项目中的功能区自定义项

Outlook 窗体区域的编程模型已更改。

必须修改项目中任何窗体区域的代码隐藏文件,以及在运行时实例化某些窗体区域类的任何代码。 有关更多信息,请参见更新迁移到 .NET Framework 4 的 Outlook 项目中的窗体区域

Excel 和 Word 项目中的智能标记的编程模型已更改。 在 Excel 2010 和 Word 2010 中已弃用智能标记。 有关更多信息,请参见智能标记概述

必须修改创建智能标记和操作对象的任何代码,以及定义自定义智能标记识别器的代码。 有关更多信息,请参见更新迁移到 .NET Framework 4 的 Excel 和 Word 项目

GetVstoObjectHasVstoObject 方法的语法已更改

当您从主互操作程序集 (PIA) 在本机对象上访问这些方法时,必须将 Globals.Factory 对象传递给这些方法,或者,您可以在项目中的 Globals.Factory 属性返回的对象上访问这些方法。 有关更多信息,请参见更新迁移到 .NET Framework 4 的 Excel 和 Word 项目

Word 内容控件的事件与新委托相关联。

必须将处理 Word 内容控件的事件的任何代码修改为指定新委托。 有关更多信息,请参见更新迁移到 .NET Framework 4 的 Excel 和 Word 项目

OLEObjectOLEControl 类已被重命名。

必须将使用这些类的实例的任何代码改为使用 Microsoft.Office.Tools.Excel.ControlSiteMicrosoft.Office.Tools.Word.ControlSite 对象。 有关更多信息,请参见更新迁移到 .NET Framework 4 的 Excel 和 Word 项目

宿主项类(如 ThisWorkbook、Sheetn、ThisDocument 和 ThisAddIn)不再提供可重写的 Dispose 方法。

必须将 Dispose 方法重写中的所有代码移到宿主项类(例如,ThisAddIn_Shutdown)中的 Shutdown 事件处理程序,然后从宿主项类中移除 Dispose 方法重写。

请参见

概念

将 Office 解决方案迁移到 .NET Framework 4

Office Development 中的新增功能

Visual Studio Tools for Office Runtime 概述

修订记录

日期

修订记录

原因

2010 年 5 月

增加了有关在面向 .NET Framework 4 的项目中移除 Dispose 方法的信息。

信息补充。