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应用程序。
- 创build您的VSTO项目(让VS为Office 2010创build项目)
- 编辑项目文件并find具有
HostName
属性的<ProjectProperties>
。 它将是<VisualStudio>
元素的子元素。 - 将
<ProjectProperties>
属性的DebuginfoExeName
属性值更改为旧版本的Office应用程序.exe文件的path - 保存你的项目
现在,当您去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的早期版本中进行开发,以确保向后兼容。
- 添加COM dll作为从特定位置的参考
- 用于格式化模板的用于Excel 2003电子表格生成的.NET组件
- 通过.NETclosures时Excel 2007挂起
- *每个* Excel互操作对象是否需要使用Marshal.ReleaseComObject发布?
- 使用Microsoft Office interop v.11与Windows 7,Microsoft Office 2010的应用程序
- C#从excel文件读取数据结果在###
- VSTO无法读取App.Config
- Excel API错误 – System.AccessViolationException:试图读取或写入受保护的内存
- 在Azure上使用Excel