Fehlermeldung „Object reference not set to an instance of an object.“ bei DevExpress.XtraBars.Design.BarManagerDesigner.Initialize

Heute hatte ich im WinForms-Designer von Visual Studio .NET 2013 einen Fehler

„Object reference not set to an instance of an object.“

at DevExpress.XtraBars.Design.BarManagerDesigner.Initialize(IComponent component)
at System.ComponentModel.Design.DesignerHost.AddToContainerPostProcess(IComponent component, String name, IContainer containerToAddTo)
at System.ComponentModel.Design.DesignerHost.PerformAdd(IComponent component, String name)
at System.ComponentModel.Design.DesignerHost.System.ComponentModel.Design.IDesignerHost.CreateComponent(Type componentType, String name)
at System.ComponentModel.Design.Serialization.DesignerSerializationManager.CreateInstance(Type type, ICollection arguments, String name, Boolean addToContainer)
at System.ComponentModel.Design.Serialization.DesignerSerializationManager.System.ComponentModel.Design.Serialization.IDesignerSerializationManager.CreateInstance(Type type, ICollection arguments, String name, Boolean addToContainer)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeInstance(IDesignerSerializationManager manager, Type type, Object parameters, String name, Boolean addToContainer)
at System.ComponentModel.Design.Serialization.ComponentCodeDomSerializer.DeserializeInstance(IDesignerSerializationManager manager, Type type, Object parameters, String name, Boolean addToContainer)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeExpression(IDesignerSerializationManager manager, String name, CodeExpression expression)
at System.ComponentModel.Design.Serialization.CodeDomSerializer.DeserializeStatementToInstance(IDesignerSerializationManager manager, CodeStatement statement)
at System.ComponentModel.Design.Serialization.CodeDomSerializer.Deserialize(IDesignerSerializationManager manager, Object codeObject)
at System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.DeserializeName(IDesignerSerializationManager manager, String name, CodeStatementCollection statements)

als ich ein Form öffnen wollte.

Der Artikel „Troubleshooting design-time problems“ hat mir dann geholfen, Ursache war eine noch nicht auf eine neuere Version aktualisierte Solution („Projektmappe“). Ich hatte noch 13.1.6.0 referenziert, auf meinem System war schon 13.1.8.0 vorhanden.

Also einfach die LICX-Datei geleert, Projekt geschlossen, den DevExpress-Projekt-Konverter gestartet, das Projekt konvertiert und danach hat sich der Designer auch wieder geöffnet.

Ergänzung 07.12.2014 – Weitere Ursache

Eine weitere Ursache trat heute auf: Nach einem Update von DX von 14.1 auf 14.2 bekam ich obigen Fehler. Ich konnte machen, was ich wollte, er ging nicht weg.

Nach langem Suchen war dann im Quelltext die Ursache:

[Designer(@"DevExpress.XtraBars.Design.BarManagerDesigner, DevExpress.XtraBars.v14.1.Design", typeof(IDesigner))] 
[DXToolboxItem(true)] 
[LicenseProvider(typeof(DXWinLicenseProvider))] 
[ProvideProperty(@"PopupContextMenu", typeof(Control))] 
public class MyBarManager : BarManager { ... }

Seht Ihr es selbst? Im Quelltext stand trotz Projekt-Konverter noch „14.1“ im Attribut-String, obwohl wir ja 14.2 verwenden.

Die Lösung war dann schlicht, auf „14.1“ ein „14.2“ zu machen und alles neu zu kompilieren. Danach ging der Designer wieder.