DevTrain .NET Developers Home. Das Community Portal für ASP.NET, Visual Basic, C#
 
  Login Status: Hallo Guest  Abmelden  Suche:  
Navigationslinks überspringen
Startseite
Artikel
Blogs
Foren
ClubClub erweitern

 
Ihre Optionen
Antwort
Forum
Mail
Print
Rate


 
Advertising
  ppedv AG - 5 Sterne Trainings

 
Navigationslinks überspringen
22.01.2007 11:50:00 .Net Allgemein: DeSerialisierungs Problem beim wechsel zu "strong name" Anwendung (Hiiilfe!!) [Sven Kuehne]

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

--


Navigationslinks überspringen.