VSTO 2012:向后兼容性

时间:2013-06-12 20:16:28

标签: c# .net excel vsto ms-office

最近, Visual Studio Tools for Office 2012 (VSTO 2012)为available for download

此新版本是否仍可用于为旧版Office(2007,2010)开发插件解决方案?是否有任何优于VSTO 4.0(除了Office 2013支持)

2 个答案:

答案 0 :(得分:3)

是的,它可以。我正在使用VS2012进行Excel 2007项目,它运行正常。

诀窍是更改项目文件中的调试路径,以便VS使用插件所用的旧版Office应用程序。

  1. 创建您的VSTO项目(让VS为Office 2010创建项目)
  2. 修改项目文件,找到<ProjectProperties>属性HostName。它将是<VisualStudio>元素的子元素。
  3. DebuginfoExeName属性的<ProjectProperties>属性值更改为旧版Office应用程序.exe文件的路径
  4. 保存您的项目
  5. 现在,当您开始调试应用时,它应启动旧版Office应用并附加到该流程以加载VSTO。

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

    <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客户端,而无需任何其他更改。

答案 1 :(得分:1)

据我所知,您可以将解决方案部署到以前的版本办公室。我曾经为2013年ppt开发了一个插件,它在2010年ppt上运行良好。请注意,新VSTO的API有几个附加功能,上次我只使用现有功能,而不是新功能。

我从来没有对此进行测试,但我认为如果您使用仅在2013年有效的新事件处理程序,那么当您在2010年部署它时,它什么都不做/不起作用。

正如我所提到的,新VSTO的明显优势是可用的功能更多,例如在2013年ppt中,当用户拖动它时它有事件处理程序,你应该自己检查它们。如果您的解决方案不需要这些新功能,您可以在以前版本的VSTO中进行开发,以确保向后兼容性。