Erstellt am:
16 Mär 2009 16:08
AW: AW: DeSerialisierungs Problem beim wechsel zu "strong name" Anwendung (Hiiilfe!!)
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 args) { string simpleName = args.Name; if (args.Name.Contains("=")) { try { // args.Name looks like this: // ", Version=..., // Culture=neutral, PublicKeyToken=<16 hexit number>" // We need to parse it to extract the version number and the simple name // Don't look for "Version" it may vary by locale string versionStr = args.Name.Substring( args.Name.IndexOf("=", StringComparison.Ordinal) + 1); versionStr = versionStr.Substring( 0, versionStr.IndexOf(",", StringComparison.Ordinal)); simpleName = args.Name.Substring( 0, args.Name.IndexOf(','));
// Load the assembly using just the name AssemblyName assemblyName = new AssemblyName(); assemblyName.Name = simpleName; Assembly assembly = Assembly.Load(assemblyName);
// Now replace the assembly's version number with // the required version and return it. assembly.GetName().Version = new Version(versionStr); return assembly; } catch (Exception ex) { throw; } } else { // search for given assembly under current loaded foreach (Assembly ass in AppDomain.CurrentDomain.GetAssemblies()) if (ass.FullName.Contains(simpleName)) return ass; throw new Exception("Could not find Assembly with name: " + simpleName); } }
Ich kann leider nicht mehr die Quelle benennen, welche mir den entscheidenden Hinweis lieferte.
|