2013-02-14 61 views

回答

0

是的,這是可能的,因爲它是COM,所以不依賴.Net版本。

1

使用Visual Studio 2012中的「Excel 2010加載項」項目模板和其他Office應用程序的等效項,答案爲「否」。使用「2003」和「2007」模板創建的插件(使用Visual Studio 2010創建)將分別適用於Office 2003及更高版本以及Office 2007和更高版本。使用「2010」(使用Visual Studio 2012創建的)模板創建的插件可用於Office 2010及更高版本。這些是「VSTO」風格的加載項,特定於給定版本的Office或更高版本。

使用IDTExtensibility2(可以使用本地或託管代碼進行創作)的COM加載項可以針對舊版本,但需要在應用程序的低級版本中支持API。 Visual Studio 2010提供了「共享加載項」模板,該模板允許使用此框架開發針對Office應用程序的.NET加載項。不過,我認爲這個項目模板類型已從Visual Studio 2012中刪除。但是,由於使用相同的方法,我相信可以使用「Visual Studio加載項」類型在Office應用程序中加載加載項底層IDTExtensibility2和相關的COM接口。

+0

謝謝您的留言。你的意思是說Excel 2003插件需要分別用於2003,2007年的2007年插件,2010年的2010年,2012年的2012年以及2013年的2013年等等。這是否意味着針對相同插件的版本特定工作? – John 2013-02-15 02:49:18

+0

謝謝你的留言。你的意思是說Excel 2003插件需要分別用於2003,2007年的2007年插件,2010年的2010年,2012年的2012年以及2013年的2013年等等。這是否意味着C#中針對相同插件的版本特定工作? – John 2013-02-15 03:01:23

2

這種類型的解決方案將工作,只要

工作站計算機已安裝VSTO 2010運行時。
工作站安裝了.Net Framework 4.0框架。
工作站具有向上安裝的Office 2007版本。 (2010 VSTO運行時不針對2003)。

它不會對工作Excel 2003中

筆記:
通過工作站我指的終端用戶(部署)工作站。 您在API中使用的任何功能都必須存在於您希望定位的所有Office版本中。
因此,例如,你不能在你的插件中使用sparklines對象,或者如果你確實要在if(application.Version> 14.0)的代碼周圍放一個if語句,這樣它就不會在2003年被調用。
還要記住在你的解決方案中嵌入類型。