如何调试Vsix项目

Com*_*ity 18 c# vsix vsixmanifest

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

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

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

Phi*_*tle 15

我已经构建了一些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的硬依赖,我可以写一个测试它模拟事件.


小智 14

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