DevTrain Startseite Advanced Developers Conference vom 14.-15. Februar 2011  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren



 

Forum: .Net Allgemein | Thema: DeSerialisierungs Problem beim wechsel zu "strong name" Anwendung (Hiiilfe!!) | Von: Sven Kuehne ( 22.01.2007 11:50)

Hallo

ich hoffe jemand kann Helfen, oder gibt es wirklich keine Lösung.

Ich hatte bisher eine Anwendung(.NET 2.0) ohne "Strong names".
Damit hab ich verschieden Sachen gespeichert( Serialisiert-BinarayFormatter). Nun wollte ich wechseln auf "Strong names" doch nun kann ich die gespeicherten Obejcte nicht mehr laden, das er das entsprechende Assembly nicht findet.

Hatte schon versucht Assembly in config-file umzuleiten, doch das scheint nur zu gehen wenn die public key tokens übereinstimmen.
Doch die haben eben gewechselt von "null" auf "dcf9ff7c2b430a09"
dependentAssembly
assemblyIdentity name="MeasurmentDetails"
publicKeyToken="null"
culture="neutral" /
bindingRedirect oldVersion="0.0.0.0 - 1.0.0.0"
newVersion="1.0.1.0"/
/dependentAssembly


Auch eine eigenen Serialisation Binder habe ich implementiert. Der gibt dann die Richtigen Typen(die neuen mit StrongName) zurück, aber die Deserialize Methode leifert immernoch:

System.IO.FileLoadException: Die Datei oder Assembly MeasurmentDetails, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null oder eine Abhängigkeit davon wurde nicht gefunden. Die gefundene Manifestdefinition der Assembly stimmt nicht mit dem Assemblyverweis überein. (Ausnahme von HRESULT: 0x80131040)
Dateiname: MeasurmentDetails, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
bei System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
bei System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
bei System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
bei System.Reflection.Assembly.Load(String assemblyString)
bei System.UnitySerializationHolder.GetRealObject(StreamingContext context)
bei System.Runtime.Serialization.ObjectManager.ResolveObjectReference(ObjectHolder holder)
bei System.Runtime.Serialization.ObjectManager.DoFixups()
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 Rheotec.Rheo3000.Forms.MainFormMDI.previousFileMenuItem_Click(Object sender, EventArgs e) in C:\_Entwicklung\Rheo3000Project\Rheo3000\Rheo3000\Forms\MainFormMDI.cs:Zeile 2449.

=== Zustandsinformationen vor Bindung ===
LOG: Benutzer = SW-ENTW-ENG\Kuehne
LOG: DisplayName = MeasurmentDetails, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
(Fully-specified)
LOG: Appbase = file:///C:/_Entwicklung/Rheo3000Project/Rheo3000/Rheo3000/bin/Debug/
LOG: Ursprünglicher PrivatePath = NULL
Aufruf von Assembly : Rheo3000, Version=1.0.110.1, Culture=neutral, PublicKeyToken=dcf9ff7c2b430a09.
===
LOG: Diese Bindung startet im default-Load-Kontext.
LOG: Die Anwendungskonfigurationsdatei wird verwendet: C:\_Entwicklung\Rheo3000Project\Rheo3000\Rheo3000\bin\Debug\Rheo3000.vshost.exe.Config
LOG: Die Computerkonfigurationsdatei von E:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config wird verwendet.
LOG: Die Richtlinie wird derzeit nicht auf den Verweis angewendet (private, benutzerdefinierte, teilweise oder pfadbasierte Assemblybindung)
LOG: Download von neuem URL file:///C:/_Entwicklung/Rheo3000Project/Rheo3000/Rheo3000/bin/Debug/MeasurmentDetails.DLL.
WRN: Der Vergleich des Assemblynamens führte zum Konflikt: PUBLIC KEY TOKEN.
ERR: Das Setup der Assembly konnte nicht abgeschlossen werden (hr = 0x80131040). Die Suche wurde beendet.
--------------------------------------------------


Wer mir da helfen könnte wäre ein wahrer .NET Gott/Göttin.

MfG Sven


Betreff Von Datum
AW: DeSerialisierungs Problem beim wechsel zu "strong...
Hallo, Sven, der Fehler tritt auf, weil du noch den 'alten' Verweis auf die Version 1.0.0.0 hast und nicht auf die 1.0.1.0 in der Anwendgung gemappt wurde. Womit progst du ? VS 2005 ? Dann füge den...
Guido Nachtigall 22.01.2007 12:01
AW: AW: DeSerialisierungs Problem beim wechsel zu...
Ich hatte das Problem nach einiger Recherche noch gelöst. Für alle mit ähnlichen Problemen hier mein Ansatz: System.Reflection.Assembly CurrentDomain_AssemblyResolve( object sender, ResolveEventArgs...
Sven Kuehne 16.03.2009 16:08

Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!

 Betreff:
 Nachricht: Den Beitrag finden Sie nun unter: http://beta.devtrain.de/foren Die Benutzerdaten und Foreninhalte von beta.devtrain.de und www.devtrain.de sind die selben.
Sie können sich dort sogar per RSS über neue Inhalte informieren lassen.
Bei Problemen bitte direkt Mail an asp [AT] ppedv.de.

 Signatur:

  



Login
Username:


Passwort:






Passwort vergessen?

Building und Connecting Know-how

© Copyright 2003 ppedv AG