Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to debug a Vsix project

Tags:

I'm creating a custom test runner for my project. So I've created a test vsix project which can be registered in Visual Studio.

I also knows that I load the extension through F5, then the experimental instance of Visual Studio is loaded, but breakpoints are not hit in the Visual Studio Instance in which I've created my vsix.

Someone knows how to really debug it?

like image 910
Complexity Avatar asked Jul 09 '14 12:07

Complexity


People also ask

What software opens VSIX files?

Opening VSIX Files The VSIX file type is primarily associated with Microsoft Visual Studio.

How do I Debug a Visual Studio plugin code?

In your Visual Studio project, set a break point in your plug-in class. In your Visual Studio project, select Debug > Attach to Process…. Select the PluginRegistration.exe process and click Attach. You should see that the Plug-in Registration tool is now running in debug mode.


2 Answers

I've built a few Visual Studio extension and I've never found a good way to debug a VSIX. You can launch an experimental instance, but I've found this to be the slowest possibility.

This is the workflow I use:

  • Open a Visual Studio instance for development. Load up the solution.
  • Make some changes, build.
  • Install the .vsix (double clicking the vsix file in \bin\debug)
  • Launch a new Instance of Visual Studio for testing.
  • In the Dev Visual Studio, Debug -> Attach to Process and select devenv.exe
  • In the Dev Visual Studio, set some break points.
  • In the Test Visual Studio, create / open new solution and start test coding.

I've found this to be much faster than launching the VS Experimental Instance. But it's still quite arduous.

The other thing I highly recommend, is to abstract as much of the Visual Studio API as you can do unit testing and doing only the bare minimum of testing in Visual Studio. For example, in a project I'm working on now, pMixins, I've abstracted out the Visual Studio event system (VisualStudioEventProxy) so that my infrastructure doesn't have a hard dependency on the event api, and I can write a test which simulates events.

like image 199
Philip Pittle Avatar answered Sep 25 '22 12:09

Philip Pittle


A bit late, but may be helpful for others.

A suggestion I found here helped me to resolve my problem with debugging my .vsix component in VS2012. In short: add to project properties "start external program:" [your visual studio path], add to "Command line arguments" /rootsuffix Exp.

like image 40
Sergey Yakovlev Avatar answered Sep 23 '22 12:09

Sergey Yakovlev