21

我正在为我的项目创建一个自定义测试运行器。所以我创建了一个可以在 Visual Studio 中注册的测试 vsix 项目。

我也知道我通过 F5 加载了扩展,然后加载了 Visual Studio 的实验实例,但是在我创建 vsix 的 Visual Studio 实例中没有命中断点。

有人知道如何真正调试它吗?

4

2 回答 2

18

我已经构建了一些 Visual Studio 扩展,但从未找到调试 VSIX 的好方法。您可以启动一个实验实例,但我发现这是最慢的可能性。

这是我使用的工作流程:

  • 打开 Visual Studio 实例进行开发。加载解决方案。
  • 进行一些更改,构建。
  • 安装 .vsix(双击 \bin\debug 中的 vsix 文件)
  • 启动一个新的 Visual Studio 实例进行测试。
  • 在 Dev Visual Studio 中,Debug -> Attach to Process 并选择devenv.exe
  • 在 Dev Visual Studio 中,设置一些断点。
  • 在 Test Visual Studio 中,创建/打开新解决方案并开始测试编码。

我发现这比启动 VS 实验实例要快得多。但这仍然是相当艰巨的。

我强烈推荐的另一件事是尽可能多地抽象 Visual Studio API,以便进行单元测试,并且只在 Visual Studio 中进行最低限度的测试。例如,在我现在正在处理的项目pMixins中,我已经抽象出 Visual Studio 事件系统 ( VisualStudioEventProxy ),这样我的基础架构就不会对事件 api 有硬依赖,并且我可以编写一个测试模拟事件。

于 2014-07-21T08:44:13.887 回答
16

有点晚了,但可能对其他人有帮助。

我在这里找到的一个建议帮助我解决了在 VS2012 中调试 .vsix 组件的问题。简而言之:添加到项目属性“启动外部程序:”[您的 Visual Studio 路径],添加到“命令行参数” /rootsuffix Exp

于 2016-02-03T19:58:07.403 回答