Ich habe eine Projektmappe mit mehreren Projekten. Mein Problem betrifft meine Testanwendung und eine meiner Bibliotheken. Wenn ich mein Hauptfenster im Designer öffnen möchte, kommt der Fehler ‚Die Assembly „XYZ, Version=2.1.3.0, etc.“ kann nicht gefunden werden.‘
Die aktuelle Version von XYZ ist jedoch 2.1.4.0. Die Bibliothek ist über die Projektmappe eingebunden und sollte eigentlich automatisch die aktuelle Version verwenden. Die gesamte Mappe lässt sich problemlos kompilieren und funktioniert fehlerfrei. Nur der Designer will nicht.
Ich habe schon verschiedene Dinge probiert und langsam gehen mir die Ideen aus:
Die Verweise wurden schon mehrmals entfernt und neu hinzugefügt, teilweise mit Visual Studio neu starten, teilweise ohne.
Alles an temporären und erstellten Dateien manuell gelöscht und neu erstellt.
Selbst ReSharper deaktiviert habe ich schon probiert.
Leider war alles ohne Erfolg.
Ich arbeite mit Visual Studio 2012 Professional Version 11.0.50727.1
.Net Framework Version 4.5.50709
ReSharper 8.0.1
Der StackTrace des Fehlers:
Fehlermeldung:
bei System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly()
bei System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo, String name)
bei System.Runtime.Serialization.Formatters.Binary.ObjectMap..ctor(String objectName, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[] typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32 objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
bei System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record)
bei System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryHeaderEnum binaryHeaderEnum)
bei System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
bei System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
bei System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
bei System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
bei System.Resources.ResXDataNode.GenerateObjectFromDataNodeInfo(DataNodeInfo dataNodeInfo, ITypeResolutionService typeResolver)
bei System.Resources.ResXDataNode.GetValue(ITypeResolutionService typeResolver)
bei System.Resources.ResXResourceReader.ParseDataNode(XmlTextReader reader, Boolean isMetaData)
bei System.Resources.ResXResourceReader.ParseXml(XmlTextReader reader)
Ich hoffe es kann mir jemand einen Tipp geben was das Problem ist oder was ich noch versuchen kann.
Ev. ein Referenzpfad gesetzt aus welchem er sich immer eine alte Version zieht (schon oft in VB-Projekten gesehen)
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
bin/obj-Ordner alle löschen und neu kompilieren.
config-Files auf irgendwelche Referenzen prüfen (vor allem bei Web- und Service-Projekten).
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hab alle Dateien in den Build-Ordnern gelöscht und alle obj-Ordner von der gesamten Projektmappe. Hat leider auch nichts gebracht. 🙁
Config-files sind keine vorhanden
Lies mal dies: UserControl kann im Designer nicht hinzugefügt werden
Dann kannst den Designer debuggen. Scheint so, als hätte der Designer Objekte deines Dll oder Exe z.B in ein Resx serialisiert.... Bei der bin- Deserialisierung braucht er nun wieder das alte Dll
Gruss Programmierhans
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
Das hat nicht direkt geholfen. Aber der Thread hat mich auf die Idee gebracht nur den fehlerhafte Verweis zu löschen. Das hat dann zu einer Fehlermeldung in der resx mit, siehe da, der falschen Version geführt.
Daran konnte ich dann auch genauer erkennen was den fehler macht und eine (völlig überflüssige) zeile im designer löschen. Dazu auch noch den teil in der ResX gelöscht und es läuft wieder.
Ich hätte eigentlich früher drauf kommen können das zu probieren. Vermutlich hab ich mich von der ResX abschrecken lassen 😁
Ich danke euch für die Tipps. Jetzt kann ich endlich meinen DebugClient wieder aufräumen 😁