變更以 .NET Framework 4 或 .NET Framework 4.5 為目標的 Office 專案設計
從 Visual Studio 2010開始, Visual Studio 引入以 .NET Framework 4 或 .NET Framework 4.5的 Office 設計的某些變更專案。如果您熟悉 Office 專案在舊版 Visual Studio 中,您應留意這些變更,在您開發目標為 .NET Framework 的版本的 Office 專案。根據預設,您建立使用 Visual Studio 2012 目標這些版本的所有專案。
下列章節描述這些 Office 專案的設計變更。
了解 Visual Studio 2010 Tools for Office Runtime 的介面型設計
當您開發的 Office 專案的目標 .NET Framework 4 或 .NET Framework 4.5時,您可以在 Visual Studio 2010 Tools for Office Runtime 使用的大部分型別則是介面。這是與舊版 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 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.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。 |
您必須從升級自 Visual Studio 2008 的 Office 專案中的 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 方法的語法已變更。 |
當您在主要 Interop 組件 (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 專案。 |
主項目類別,例如 ThisWorkbook, Sheet, ThisDocumentn和 ThisAddIn,不再提供可覆寫的 Dispose 方法。 |
您必須將 Dispose 方法覆寫的所有程式碼移至主項目類別中的,例如, ThisAddIn_ShutdownShutdown 事件處理常式,並從主項目類別中移除 Dispose 方法覆寫。 |
請參閱
概念
將 Office 方案移轉至 .NET Framework 4 或 .NET Framework 4.5
Visual Studio Tools for Office Runtime 概觀