【发布时间】:2018-11-01 21:39:29
【问题描述】:
我们需要为 Office 2016 开发插件。我们使用的是 Visual Studio 2013。它只显示 Office 2013 插件模板。是否可以从 Visual Studio 2013 创建 Office 2016 加载项?如果是这样,请告诉我步骤。
【问题讨论】:
标签: visual-studio vsto ms-office
我们需要为 Office 2016 开发插件。我们使用的是 Visual Studio 2013。它只显示 Office 2013 插件模板。是否可以从 Visual Studio 2013 创建 Office 2016 加载项?如果是这样,请告诉我步骤。
【问题讨论】:
标签: visual-studio vsto ms-office
您需要 VS 2015 来获取 Office 2016 的特定模板。VSTO 只为“当前”版本的 Office 提供模板。
如果安装了 Office 2013,您可以为其开发插件。在 Office 2016 中安装和运行它应该没有问题 - 除非您想使用特定于 2016 的技术。在这种情况下,您可以对 2016 特定部分使用后期绑定 (PInvoke),但调试/测试将是有点痛。
您可以下载免费的 Visual Studio 2015 社区版 (https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx) 以及 VSTO 包 (https://www.visualstudio.com/en-us/features/office-tools-vs.aspx):VSTO 确实集成到了 2015 版(以及 2013 版)的社区版中。当然,许可限制将适用。
除此之外,您需要升级到完整的 VS 2015。
【讨论】:
您可以在 VS2013 中开发和运行 Office 2016 插件。无需升级到 VS2015。
打开项目文件并在 ProjectExtensions 部分将 Office 版本字符串“15.0”替换为“16.0”。寻找类似的字符串来编辑:
OfficeVersion="15.0" VstxVersion="4.0" ApplicationType="Outlook" Language="cs" TemplatesPath="" DebugInfoExeName="#Software\Microsoft\Office\15.0\Outlook\InstallRoot\Path#outlook.exe"
【讨论】:
是的,这是可能的。在 Visual Studio 2013 中创建的加载项可以在 Office 2016 中运行。您可以在Running Solutions in Different Versions of Microsoft Office 文章中阅读更多相关信息。
如果您需要使用仅在 Office 2016 中可用的新方法和属性,您可以使用反射机制(请参阅Type.InvokeMember)。
【讨论】:
有一个 Outlook 示例,我在 Excel 中尝试过它,它也可以正常工作。
我的例子:
<ProjectProperties HostName="Excel" HostPackage="{29A7B9D7-A7F1-4328-8EF0-6B2D1A56B2C1}" OfficeVersion="16.0" VstxVersion="4.0" ApplicationType="Excel" Language="vb" TemplatesPath="" DebugInfoExeName="#Software\Microsoft\Office\16.0\Excel\InstallRoot\Path#excel.exe" DebugInfoCommandLine="/x" AddItemTemplatesGuid="{DCFE8D25-4715-4C33-9EAB-A34A9EBC9544}" />
我变了
OfficeVersion="15.0"
到
OfficeVersion="16.0"
以及Excel的路径
#Software\Microsoft\Office\16.0\Excel\
还有,终于在 Excel 2016 中开始了...
【讨论】: