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 |
|
|
Guido
Nachtigall
|
22.01.2007 12:01 |
|
|
Sven
Kuehne
|
16.03.2009 16:08 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!