【问题标题】:Why does VSTO Add-in project need migration?为什么 VSTO Add-in 项目需要迁移?
【发布时间】:2016-01-19 19:23:17
【问题描述】:

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

我创建了一个 Word 2010 VSTO 加载项。我尝试在 Word 2010 上构建和调试它,它工作正常。

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

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

您无法调试或运行此项目,因为未安装所需版本的 Microsoft Office 应用程序

在 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 visual-studio-2015 vsto


    【解决方案1】:

    无需再安装 Visual Studio。我个人为 Office 2007、2010 和 2013(以及现在的 2016)制作插件,使用 2010 年到 2015 年的任何版本的 VS。你只需要稍微设置你的项目。属性 OfficeVersion="15.0" 对您没有太大影响(实际上,我不确定它是否会改变任何东西),但是属性

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

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

    如果以后你会安装更多版本的MS Office(我相信你需要,因为你还可以测试兼容性),你可以通过设置轻松切换Office的起始版本

    项目属性 -> 调试 -> 启动外部程序 - C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE(或其他有效路径)

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

    所以,毕竟,您只有两个版本的 Office 的模板,但您可以设置它们以满足您的需求。

    【讨论】:

    • 正如我在第一篇文章中所写的“但是当我将其更改为 14.0 并重新打开时,它需要再次迁移!”
    • 无论如何你都不需要改变它。无论如何,您都可以调试任何您想要的版本,将路径更改为 winword.exe。而且您可以更改引用中的互操作版本,因此 OfficeVersion="15.0" 对您没有任何影响。
    • 你是对的!在调试属性中设置启动外部程序解决了这个问题,现在我可以在 VS 2013 下调试了。
    【解决方案2】:

    一般来说,Visual Studio 中用于 Office 系统模板 (VSTO) 的 Visual Studio 工具仅支持发布 Visual Studio 时的最后两个当前版本的 Office。

    Visual Studio 2010:Office 2007(“Office 12”)、Office 2010(“Office 14”)、Visual Studio 2012:Office 2010、Office 2013(“Office 15”)、Visual Studio 2013:Office 2010、Office 2013 . Visual Studio 2015 目前在 Office 2013 和 Office 2016 上。

    但是,您不需要降级到 Visual Studio 2010,您可以并排安装 Visual Studio 的版本。我在一台机器上安装了 Visual Studio 2010、2012、2013 和 2015。

    请注意,您可以手动将 Office PIA 引用更改为更高的 Office 版本,但由于您未升级项目中的 VSTO 管道,因此模板设计的 VSTO 版本与您的 Office 版本不匹配目标。这可能会在以后破坏您的项目。

    如果您不想使用 VSTO 工具,建议您避免使用 VSTO 模板,只需从一个空白项目开始,然后在应用程序中添加对 Office 的引用即可。通过这样做,您可以随时将引用切换到其他 Office 版本,如果您想定位不同的版本。

    【讨论】:

    • 我在尝试将 VS 2013 与 Office 2010 一起使用时遇到了同样的问题,但我会尝试下载 2010。我需要降级,我的磁盘上没有更多空间,所以需要一个版本去:)
    • 在 Visual Studio 2010 上,它就像一个魅力。我很失望,我不能使用最新的 VS...
    • @Maarten van Stam 您的回答是错误的,至少具有误导性。唯一的事实是您在 Visual Studio 中没有模板,除了最后两个版本的 Office。但是您绝对可以为任何版本的 MS Office 设置自己的项目。
    • @AlexButenko 随时指出我的回答在哪里是错误和误导的。我的信息来自 VSTO 产品组的软件设计评论,但也可以在官方声明中在线找到:[social.msdn.microsoft.com/Forums/vstudio/en-US/…。我很清楚 -unsupported- 场景,但在帮助他人解决问题时,我喜欢远离这种情况。
    • 好吧,假设除了模板之外设置项目是件坏事。如果您需要插件同时支持 2007 年到 2016 年的每个版本,您如何编写插件?
    猜你喜欢
    • 2020-08-23
    • 2010-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2011-06-08
    • 2021-06-11
    相关资源
    最近更新 更多