Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

VS 2010 - Error when opening User Control / Form with Designer

C#, VS2010, WinForm application:

Sometimes I do have the problem that I get an error message when opening some of my controls / forms. All code compiles and the application runs properly. Opening the control in the designer gives me:

The designer loader did not provide a root component but has not indicated why.

From my experience I can tell, it is usually something in my code which does not get properly initialized, e.g. a property is not set which is somehow available at runtime, but not when opened with the designer. The only issue is, that the root cause is hard to find.

Q: Is there a chance to somehow use the debugger when the designer opens my component in Visual Studio 2010? That would help a lot and the problem tackling is most likely a matter of minutes then.

Remark: Just to make this clear, I know how to use the debugger ;-), I only have no idea how I could tell VS2010's designer to open my control in Debug mode.

As of 2nd SEP 2010 added:

Thanks for your help. Basically it is the MSDN Library article describing how to do it.

  • I have managed to set it up and run the second instance (there was not much to understand how to do it).
  • It only fails in my case, because the 2nd VS2010 instance (debugging Design Time) fails to find the symbols for my custom control. I have added the symbols manually under Debugging / symbols. No result, still "Breakpoint won't be hit because of missing symbols"

BTW, using this approach it is helpful to exclude some stuff from the symbol loading (via modules window), because this will safe a lot of time.

Now if have to figure out how to get the symbols resolved and then I can tackle the issue.....

like image 875
Horst Walter Avatar asked Sep 01 '10 18:09

Horst Walter


1 Answers

To debug your control in design mode, you need two instances of Visual Studio. In the first instance, open the project which contains this control source code. In the Project Properties, Debugger, set command line which calls another Visual Studio instance (msdev? don't know exactly for VS2010 - take it from the shortcut), Then execute "Start Debugging" command. Another Visual Studio instance starts. In this instance open client project which uses your control on the form.

like image 78
Alex F Avatar answered Oct 23 '22 11:10

Alex F