由于最近Visual Studio Tools For Office 2012 (VSTO 2012)可供下载。
此新版本是否仍可用于为旧版 Office(2007、2010)开发加载项解决方案?与 VSTO 4.0 相比是否有任何优势(除了 Office 2013 支持)
是的,它可以。我将 VS2012 用于 Excel 2007 项目,它工作正常。
诀窍是更改项目文件中的调试路径,以便 VS 使用您的插件适用的旧版 Office 应用程序。
<ProjectProperties>
带有HostName
属性的 。它将是元素的子<VisualStudio>
元素。DebuginfoExeName
将属性的属性值更改为<ProjectProperties>
旧版 Office 应用程序 .exe 文件的路径现在,当您去调试您的应用程序时,它应该启动旧版本的 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 客户端,无需任何额外更改。
据我所知,您可以将您的解决方案部署到以前版本的办公室。我曾经为 ppt 2013 开发了一个插件,它在 ppt 2010 中运行良好。请注意,新 VSTO 的 API 有几个附加功能,上次我只使用现有功能,但没有使用新功能。
我从未对此进行过测试,但我认为如果您使用仅在 2013 年有效的新事件处理程序,那么当您在 2010 年部署它时,它根本什么都不做/不起作用。
正如我所提到的,新 VSTO 的明显优势是可用的功能更多,例如在 ppt 2013 中,它具有当用户拖动时的事件处理程序,您应该自己检查它们。如果您的解决方案不需要这些新功能,您可以在以前版本的 VSTO 中开发它,以确保向后兼容。