面向 .NET Framework 4 或 .NET Framework 4.5 的 Office 项目设计的更改
从开始 Visual Studio 2010,Visual Studio 引入了对 Office 项目设计的一些更改该目标 .NET Framework 4 或 .NET Framework 4.5。如果您熟悉 Visual Studio 中的 Office 项目,您的旧版本,应了解这些更改在开发面向 .NET framework 的这些版本的 Office 项目。默认情况下,使用创建 Visual Studio 2012 目标这些版本的所有项。
以下各节介绍这些 Office 项目模型更改。
了解 Visual Studio 2010 Tools for Office Runtime 的基于接口的设计
在开发面向 .NET Framework 4 或 .NET Framework 4.5的 Office 项目时,您使用 Visual Studio 中 for Office runtime 2010 个工具的多数类型是接口。这是对以前版本的 Visual Studio Tools for Office Runtime 的主要更改,以前版本中的这些类型都是类。例如,那么,当您面向 .NET Framework 4 或 .NET Framework 4.5时,Worksheet 和 Document 类型是接口而不是选件类。有关更多信息,请参见Visual Studio Tools for Office Runtime 概述。
对于可以在以前版本的 Visual Studio Tools for Office Runtime中直接实例化的任何类型,现在可以使用 Globals.Factory 对象的方法来获取这些类型的实例。例如,若要获取实现 SmartTag 接口的对象,请使用 Globals.Factory.CreateSmartTag 方法。有关更多信息,请参见下列主题:
更新您迁移到 .NET Framework 4 或 .NET Framework 4.5 的 Excel 和 Word 项目
更新迁移到 .NET Framework 4 或 .NET Framework 4.5 的 Office 项目中的功能区自定义项
更新迁移到 .NET Framework 4 或 .NET Framework 4.5 的 Outlook 项目中的窗体区域
Office 项目中的新基类
Visual Studio 中新增的基于接口的设计 for Office runtime 2010 个工具影响在 Office 项目中生成的选件类,如 ThisDocument、ThisWorkbook和 ThisAddIn。在面向 .NET Framework 3.5 和以前版本的 Framework 的 Office 项目中,这些生成的类派生自 Visual Studio Tools for Office Runtime中的类(如 Microsoft.Office.Tools.Word.Document、Microsoft.Office.Tools.Excel.Worksheet 和 Microsoft.Office.Tools.AddIn)。在面向 .NET Framework 4 或 .NET Framework 4.5的项目中,这些 Visual Studio Tools for Office Runtime 选件类现在是接口。因此,Office 项目中生成的类不再从这些类派生其实现,而是派生自新的基类,如 DocumentBase、WorksheetBase 和 AddInBase。有关更多信息,请参见应用程序级外接程序编程和对文档级自定义项进行编程。
基类不属于 Visual Studio Tools for Office Runtime可再发行组件。相反,基类在 Visual Studio 2012 附带的实用工具程序集中进行定义。这些程序集在您生成 Office 项目时会复制到输出文件夹,并且必须随解决方案一起部署。有关这些实用工具程序集的更多信息,请参见 Visual Studio Tools for Office Runtime 中的程序集。
重定向到 .NET Framework 4 的 Office 项目中的重大更改
下表列出了在 Office 项目中遇到重定目标为 .NET Framework 4 或 .NET Framework 4.5的主要重大更改。有关更多详细信息,请参见将 Office 解决方案迁移到 .NET Framework 4 或 .NET Framework 4.5。
重大更改 |
结果 |
---|---|
Office 项目中不再使用或支持 SecurityTransparentAttribute。 |
必须从 Office 项目(从 Visual Studio 2008 升级)中的 AssemblyInfo 代码文件中移除此特性。有关更多信息,请参见运行迁移到 .NET Framework 4 或 .NET Framework 4.5 的 Office 项目所需的更改。 |
Excel 项目中不再使用或支持 ExcelLocale1033Attribute。 |
必须从 Excel 项目中的 AssemblyInfo 代码文件中移除此特性。有关更多信息,请参见更新您迁移到 .NET Framework 4 或 .NET Framework 4.5 的 Excel 和 Word 项目。 |
“功能区(可视化设计器)”项目项的编程模型已更改。 |
您必须修改代码在所有功能区项的文件后在项目中。您还必须修改实例化功能区控件运行时,处理功能区事件或设置区组件位置程序模型的所有代码。有关更多信息,请参见更新迁移到 .NET Framework 4 或 .NET Framework 4.5 的 Office 项目中的功能区自定义项。 |
Outlook 窗体区域的编程模型已更改。 |
必须修改项目中任何窗体区域的代码隐藏文件,以及在运行时实例化某些窗体区域类的任何代码。有关更多信息,请参见更新迁移到 .NET Framework 4 或 .NET Framework 4.5 的 Outlook 项目中的窗体区域。 |
Excel 和 Word 项目中的智能标记的编程模型已更改。在 Excel 2010 和 Word 2010 中已弃用智能标记。 |
如果您的解决方案使用智能标记,将发生错误,则生成项目。由于智能标记已弃用 Excel 2010 和 Word 2010,则必须移除标记,然后才能测试和调试在 Visual Studio 2012之前的解决方案。 |
GetVstoObject 和 HasVstoObject 方法的语法已更改 |
当您从主互操作程序集 (PIA) 在本机对象上访问这些方法时,必须将 Globals.Factory 对象传递给这些方法,或者,您可以在项目中的 Globals.Factory 属性返回的对象上访问这些方法。有关更多信息,请参见更新您迁移到 .NET Framework 4 或 .NET Framework 4.5 的 Excel 和 Word 项目。 |
Word 内容控件的事件与新委托相关联。 |
必须将处理 Word 内容控件的事件的任何代码修改为指定新委托。有关更多信息,请参见更新您迁移到 .NET Framework 4 或 .NET Framework 4.5 的 Excel 和 Word 项目。 |
OLEObject 和 OLEControl 类已被重命名。 |
必须将使用这些类的实例的任何代码改为使用 Microsoft.Office.Tools.Excel.ControlSite 或 Microsoft.Office.Tools.Word.ControlSite 对象。有关更多信息,请参见更新您迁移到 .NET Framework 4 或 .NET Framework 4.5 的 Excel 和 Word 项目。 |
承载 project 选件类,如 ThisWorkbook,Sheetn,ThisDocument,并且,ThisAddIn,不再提供可重写的一个 Dispose 方法。 |
必须将 Dispose 方法重写中的所有代码移到宿主项选件类的,例如,ThisAddIn_ShutdownShutdown 事件处理程序,然后从宿主项类选件移除 Dispose 重写的方法。 |
请参见
概念
将 Office 解决方案迁移到 .NET Framework 4 或 .NET Framework 4.5
Visual Studio Tools for Office Runtime 概述