zurück
Autor: Sven Kuehne
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.


.Net Allgemein


© Copyright 2008 ppedv AG