2013-02-14 60 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年被调用。
还要记住在你的解决方案中嵌入类型。