Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to resolve VS2010 Windows Form Designer issue (base class could not be loaded)

Tags:

I have recently been getting an error in the Windows Forms designer of VS2010SP1 when using inherited UserControls.

The error is

The designer could not be shown for this file because none of the classes within it can be designed. The designer inspected the following classes in the file: DebugPanel --- The base class 'UI.Panels.PanelBase' could not be loaded. Ensure the assembly has been referenced and that all projects have been built.

PanelBase is a UserControl that is defined in the same class library as DebugPanel that also implements an interface IPanel (which is in turn defined in the same class library). IPanel implements an interface IBaseItem that is defined in a different class library.

So we have

DebugPanel            (Library UI.Shared2) - PanelBase           (Library UI.Shared2)     - UserControl     (System.Windows.Forms - .NET4)     - IPanel          (Library UI.Shared2)         - IBaseItem   (Library Net.Common)  

PanelBase is designable correctly, the project all builds correctly and works but when I try and design any inherited control the designer fails. This is not limited to the DebugPanel control, but any control inheriting from PanelBase... I've also seen the issue with other controls that I use that have similar inheritance hierarchies.

I can generally resolve the problem temporarily by cleaning the library UI.Shared2, closing VS and then opening it again, rebuilding the solution and opening the designer. This will then work for a short while and then start to fail again.

Does anyone have any suggestions that can resolve this issue permanently without resorting to restarting VS?

Edit: I am targeting the full version of .NET 4 with all libraries.

like image 373
Anthony Avatar asked Oct 14 '11 09:10

Anthony


People also ask

Which base class is used for all the Windows controls in window form application?

Form. This base class provides the functionality you need to design Windows Forms applications.


1 Answers

I had the same issue. I had a Form object/base object I was inheriting from, and all of a sudden I see this message for all Forms that were inheriting from the Base.

I tried to backtrack and figure out what changed recently and remembered I set my project Platform Target from Any CPU to x64. I changed it back to Any CPU and the problem got resolved, and then setting it back again to x64 still kept the problem fixed.

This was on VS 2013, by the way.

like image 141
Avazee Avatar answered Sep 23 '22 01:09

Avazee