如何调试Vsix项目

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

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

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

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

这是我使用的工作流程:

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

我发现这比启动VS实验实例要快得多。 但它仍然非常艰巨。

我强烈推荐的另一件事是抽象尽可能多的Visual Studio API,因为你可以进行unit testing,并且只在Visual Studio中进行最低限度的测试。 例如,在我正在进行的项目中, pMixins ,我已经抽象出Visual Studio事件系统( VisualStudioEventProxy ),这样我的基础设施就没有对事件api的硬依赖,我可以写一个测试它模拟事件。

有点晚,但可能对其他人有帮助。 在这里找到的建议帮助我解决了在VS2012中调试vsix组件的问题。 简而言之:添加到项目属性“启动外部程序:”[youre visual studio path],添加到“命令行参数” /rootsuffix Exp