visual-studio - 为什么 VSTO Add-in 项目需要迁移?

标签 visual-studio visual-studio-2015 vsto

我使用的是 Visual Studio 2015。我的计算机上安装了 Office 2003 和 2010。

我创建了一个 Word 2010 VSTO 外接程序。我尝试在 Word 2010 上构建并调试它,效果很好。

然后我关闭了 Visual Studio,又打开了它,并使用我的 VSTO 项目打开了一个解决方案 - 但如果没有单向升级,我无法打开它。需要迁移。

如果我同意单向升级,我的项目构建正常,但我无法调试:

You cannot debug or run this project, becuase the required version of the Microsoft Office application is not installed

在 csproj 文件中,我可以看到它确实需要错误版本的 Office(Office 2010 的 OfficeVersion 应为 14.0):

<ProjectExtensions>
<VisualStudio>
  <FlavorProperties GUID="{BAA0C2D2-18E2-41B9-852F-F413020CAA33}">
    <ProjectProperties HostName="Word" HostPackage="{29A7B9D7-A7F1-4328-8EF0-6B2D1A56B2C1}" OfficeVersion="15.0" VstxVersion="4.0" ApplicationType="Word" Language="cs" TemplatesPath="VSTOTemplates" DebugInfoExeName="#Software\Microsoft\Office\15.0\Word\InstallRoot\Path#WINWORD.EXE" DebugInfoCommandLine="/w" AddItemTemplatesGuid="{51063C3A-E220-4D12-8922-BDA915ACD783}" />
    <Host Name="Word" GeneratedCodeNamespace="WKP_EditorTools" IconIndex="0">
      <HostItem Name="ThisAddIn" Code="ThisAddIn.cs" CanonicalName="AddIn" CanActivate="false" IconIndex="1" Blueprint="ThisAddIn.Designer.xml" GeneratedCode="ThisAddIn.Designer.cs" />
    </Host>
  </FlavorProperties>
</VisualStudio>

但是当我把它改成14.0并重新打开时,它需要再次迁移!

这是怎么回事?我应该降级到 Visual Studio 2010...吗?

最佳答案

无需再安装任何 Visual Studio。我个人使用 2010 到 2015 年间任何版本的 VS 为 Office 2007、2010 和 2013(现在是 2016)制作加载项。您只需要稍微设置一下您的项目即可。属性 OfficeVersion="15.0"对您来说没有太大区别(实际上,我不确定它会改变什么),但是属性

DebugInfoExeName="#Software\Microsoft\Office\15.0\Word\InstallRoot\Path#WINWORD.EXE

定义您用于调试的 Word 版本。您可以将路径更改为所需的路径。

如果以后您将安装更多版本的 MS Office(我相信您需要这样做,因为否则您如何测试兼容性),您可以通过设置轻松切换 Office 的起始版本

the project properties -> Debug -> Start external program - C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE (or another valid path)

此外,您的项目有一些互操作引用。使用哪个版本并没有太大区别,它们具有几乎相同的功能,但我建议使用您拥有的最新版本(我认为当您选择单向升级时 Visual Studio 已经升级了它)。

因此,毕竟您的模板仅适用于两个版本的 Office,但您可以对其进行设置以满足您的需求。

关于visual-studio - 为什么 VSTO Add-in 项目需要迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34812817/

相关文章:

c# - 相当于使用 Outlook DASL 筛选器选择位置

c# - 在实际打开之前提取 Excel 工作簿名称

visual-studio - Visual Studio/ReSharper 的关键启动器插件

c# - 将应用程序部署到 Windows Phone 时出错

c++ - 将 idl 文件导入 Visual Studio (C++)?

c++ - 如何让 Visual Studio 调试器在没有焦点的情况下中断

c# - 仅包含我的日志的 Visual Studio 输出窗口

c# - 升级到 ASP.NET MVC6 beta 7 后打开现有项目时出现异常

asp.net-mvc - 项目的默认 XML 命名空间必须是 MSBuild XML 命名空间

c# - 无法加载文件或程序集 'System.Net.Http, Version=2.2.29.0'