VSTO 2012:向后兼容

最近, Visual Studio Tools for Office 2012 (VSTO 2012) 可供下载 。

这个新版本是否仍然可以用于为旧版Office(2007,2010)开发附加解决scheme? 除VSTO 4.0之外,是否有任何优势(除了Office 2013支持)

是的,它可以。 我正在使用VS2012的Excel 2007项目,它工作正常。

诀窍是更改项目文件中的debuggingpath,以便VS使用插件的旧版本Office应用程序。

  1. 创build您的VSTO项目(让VS为Office 2010创build项目)
  2. 编辑项目文件并find具有HostName属性的<ProjectProperties> 。 它将是<VisualStudio>元素的子元素。
  3. <ProjectProperties>属性的DebuginfoExeName属性值更改为旧版本的Office应用程序.exe文件的path
  4. 保存你的项目

现在,当您去debugging您的应用程序时,它应该启动旧版本的Office应用程序,并附加到该过程来加载您的VSTO。

在我的项目中,对于Excel 2007,新的<ProjectProperties>元素看起来像这样:

 <ProjectProperties HostName="Excel" HostPackage="{20A848B8-E01F-4801-962E-25DB0FF57389}" OfficeVersion="14.0" VstxVersion="4.0" ApplicationType="Excel" Language="cs" TemplatesPath="" DebugInfoExeName="#Software\Microsoft\Office\12.0\Excel\InstallRoot\Path#excel.exe" AddItemTemplatesGuid="{51063C3A-E220-4D12-8922-BDA915ACD783}" /> 

部署也可以正常工作。 我通过ClickOnce部署我的加载项,并将其添加到Excel 2007客户端,而无需进行任何其他更改。

据我所知,您可以将您的解决scheme部署到以前的版本办公室。 我曾经为ppt 2013开发过一个插件,并且在2010年ppt中工作的很好。请注意,新的VSTO的API有几个附加function,上次我只使用现有function,但不使用新function。

我从来没有testing过,但我想如果你使用新的事件处理程序,只能在2013年,当你在2010年部署它只是没有/不工作。

正如我所说,新的VSTO的明显优势是更多的function可用,例如在2013年,它有事件处理程序,当用户拖动,你应该检查他们自己。 如果您的解决scheme不需要这些新function,则可以在VSTO的早期版本中进行开发,以确保向后兼容。