Laden...

VS2012: Designer verlangt falsche Assembly-version

Erstellt von Brandy vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.953 Views
B
Brandy Themenstarter:in
4 Beiträge seit 2013
vor 10 Jahren
VS2012: Designer verlangt falsche Assembly-version

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.

4.221 Beiträge seit 2005
vor 10 Jahren

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...

B
Brandy Themenstarter:in
4 Beiträge seit 2013
vor 10 Jahren

Meinst du die Verweispfade? Die sind leer.

16.834 Beiträge seit 2008
vor 10 Jahren

bin/obj-Ordner alle löschen und neu kompilieren.
config-Files auf irgendwelche Referenzen prüfen (vor allem bei Web- und Service-Projekten).

B
Brandy Themenstarter:in
4 Beiträge seit 2013
vor 10 Jahren

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

4.221 Beiträge seit 2005
vor 10 Jahren

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...

B
Brandy Themenstarter:in
4 Beiträge seit 2013
vor 10 Jahren

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 😁