A Visual Studio rant

My experience of IDE applications is that when you develop an application using an IDE, you might use the debugger in an early stage to test run parts of your app, or even the whole app. But when bugs are fixed and you have optimised things, you leave the debugger and “compile and make the real thing”, the product that will be released.
But it seems developing a program for Netduino means using the Debugger from start to finish. Am I right? Isn’t that a hack kind of thing? In Visual Studio, I start the “Start Debugging” function, but what I actually do with that is deploying my program to the Netduino. There’s no actual debugging involved? And there’s no actual flash-the-microcontroller-with-your-compiled-program function involved? To me, that looks like a hack thing, a clever way to use Visual Studio. But Visual Studio is a huge complex IDE and I run constantly into problems with it, I google for solutions and often the cause of my problems are explained in terms of “Visual Studio does this and that, we don’t know why Visual Studio does that…”
Right now I’m struggling with this (again):

Attaching debugger engine...
... cannot attach debugger engine!

And that’s annoying! I wouldn’t want a debugger Engine in the first Place, I want my program installed on the Netduino.

I’m not in front of my main dev machine at the moment but attaching the debugger engine will always involve debugging.

If all you want to do is compile a release version and send it to the device then there is a right click option on the project to deploy it. This is what I do when I want to run the hardware without the debugger inserting itself into the process. This will do what you want unless I have misunderstood. Sorry I can be more help at the moment.

Edit: Right click on the project (not solution) and the third option down is Deploy.


That very Deploy function does this:

Looking for a device on transport 'USB'
Found device port 'USB' with ID 'e8035b98-185c-4c77-8ada-1005f59c3cbd' for transport 'Usb'
Starting device deployment...
Attempting to connect to device 'USB:Netduino' Iteration 0
Opening port \\?\USB#VID_22B1&PID_1000#000000000000#{09343630-a794-10ef-334f-82ea332c49f3}\Operations
Attaching debugger engine...
... cannot attach debugger engine!

No matter what I try to avoid the debugger, once the debugger has been initiated in a deploy attempt, I can’t get rid of that without reflashing and reinstalling as much as possible on the Netduino.

Is there a checkbox somewhere?

I believe the debugger engine is used to transport the image to the device. This is not the same as running the debugger. On my machine Visual studio 2015 reports

Attaching debugger engine…
… debugger engine attached!
Querying device assemblies…

Attempting deployment…
Incrementally deploying assemblies to device
Deploying assemblies for a total size of 136072 bytes
Assemblies successfully deployed to device.

This is for a release version compilation of the code. Unless I have misunderstood what you are trying to do, isn’t this what you want? the device is now running stand alone code. Pull out the USB, cycle the power and away you go.

My hardware is embedded in a larger design and not a Netduino board but there should be no difference.


I have suspected something like that. I mean that the debugger does something else than debugging. To me, that looks like a hack thing. But I never noticed a line about attaching a debugger, when the thing worked. Either there were too much text scrolling by or the text got wiped away at a moment when the deploying was complete.
So is there no real debugging involved? At least there are the lines Debug.Print ("yadda yadda");
It makes real hard to solve this problem, if debugger has to do with both transfering program to the Netduino, which is always needed, and with actual debugging, which one might want to turn off at some point. And this problem has to do with the debugger somehow.