【问题标题】:How can I use Visual studio 2015 to debug an extension for visual studio 15?如何使用 Visual Studio 2015 调试 Visual Studio 15 的扩展?
【发布时间】:2016-12-30 18:39:23
【问题描述】:

我有一个为 Visual Studio 2015 开发的 extension,我想开始测试 Visual Studio 15。

为了尝试执行此操作,我将项目设置为启动 C:\Program Files (x86)\Microsoft Visual Studio\VS15Preview\Common7\IDE\devenv.exe 而不是 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe,同时将命令行参数设置为 /rootsuffix Exp。我还在清单中设置了适当的安装目标:

<InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[14.0,15.0)" />
<InstallationTarget Version="[14.0,15.0)" Id="Microsoft.VisualStudio.Pro" />
<InstallationTarget Version="[14.0,15.0)" Id="Microsoft.VisualStudio.Enterprise" />
<InstallationTarget Version="15.0" Id="Microsoft.VisualStudio.Enterprise" />
<InstallationTarget Version="15.0" Id="Microsoft.VisualStudio.Pro" />
<InstallationTarget Version="15.0" Id="Microsoft.VisualStudio.Community" />

(我也试过[14.0,16.0)的安装目标)。

当我调试项目时,VS 15 的实验实例启动正常,但是它没有安装扩展。

是否可以使用 Visual Studio 2015 来调试 Visual Studio 15 的扩展,如果可以,如何调试?

【问题讨论】:

  • 对不起,不明白你的评论。你是说我不应该在 Visual Studio 15 发布之前测试我的扩展,还是我完全错误的方式?
  • 哦,等等,这是 vnext。会出什么问题?好吧,几乎任何事情。祝你好运。
  • 我知道任何事情都可能出错,并且“有龙”等......只是希望其他人遇到这个问题并解决它。有近 300 个可用于 VS15 的扩展,(你希望!)已经过测试。如果这个问题没有得到解答,并且在下一个预览版/版本出现时它已经解决,那么我很乐意关闭/删除这个问题。
  • 我认为通常它也使用 VS 15 进行调试...有什么理由使用 VS2015 进行调试?我认为这不重要,但我从来没有写过扩展?
  • @Phil1970 我还不想升级项目(所以如果需要我仍然可以使用 vs2015)。我开始认为这可能是问题所在,尽管从 vs15 调试我的项目(已升级它)也不起作用。如果我找到解决方案,我会自己回答。

标签: visual-studio visual-studio-2015 visual-studio-extensions visual-studio-2017


【解决方案1】:

发生的情况是扩展程序仍在安装到 VS2015 实验实例中。这是因为 proj 文件中有这些行:

<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
...
<Import Project="$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets" Condition="'$(VSToolsPath)' != ''" />

因为我运行的是 VS2015,所以目标文件的路径解析为 VS2015 文件。它定义了 VSIX 如何安装到实验实例。

我尝试更改对较新的 VSSDK 目标文件的引用,但这会导致各种我不想涉足的错误。

为了测试我调试过的扩展(使其安装在 VS2015 实验版上),在文件结构(VS14Exp)中找到已安装的扩展,将其复制到 VS15 文件夹,再次调试,启动 VS15 devenv。实验实例。那时断点被击中等,因为它从文件夹中加载了扩展。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    相关资源
    最近更新 更多