3

由于最近Visual Studio Tools For Office 2012 (VSTO 2012)可供下载

此新版本是否仍可用于为旧版 Office(2007、2010)开发加载项解决方案?与 VSTO 4.0 相比是否有任何优势(除了 Office 2013 支持)

4

2 回答 2

3

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

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

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

现在,当您去调试您的应用程序时,它应该启动旧版本的 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 客户端,无需任何额外更改。

于 2013-06-14T12:34:57.697 回答
1

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

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

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

于 2013-06-14T12:01:23.253 回答