【问题标题】:VSTO 2012: backward compatibilityVSTO 2012:向后兼容性
【发布时间】:2013-06-12 20:16:28
【问题描述】:

最近 Visual Studio Tools For Office 2012 (VSTO 2012) 是available for download

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

【问题讨论】:

  • 不是答案,因为我不确定,但我认为这里的向后兼容性是另一种方式,因为您可以使用早期版本的 VSTO 为更新版本的 Office 进行开发,但不是反之亦然。
  • 我知道 VSTO2012 可以用于开发 Office 2010 解决方案,如果您将目标框架更改为 .NET4。我不知道的是如果我在VS2012中创建了Office 2010的解决方案,我可以在VS2010中打开它吗?

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


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多