zurück
Autor: Sven Kuehne
Erstellt am: 22 Jan 2007 11:50

DeSerialisierungs Problem beim wechsel zu "strong name" Anwendung (Hiiilfe!!)

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

.Net Allgemein


© Copyright 2008 ppedv AG