Hallo zusammen,
ich arbeite derzeit an einem kleinem Programm, bei dem ich die benötigten DLLs nicht direkt mit ausliefere, sondern diese (wenn veraltet/nicht vorhanden) ins AppData runterlade. Laden tue ich diese per Event:
PHP Code:
AppDomain.CurrentDomain.AssemblyResolve += delegate (object sender, ResolveEventArgs args)
{
var assemblyName = args.Name.Substring(0, args.Name.IndexOf(','));
return (from file in fileList
select Assembly.LoadFile(file)
into assembly
let currAssemblyName = assembly.FullName.Substring(0, args.Name.IndexOf(','))
where assemblyName == currAssemblyName
select assembly).FirstOrDefault();
};
PHP Code:
for (var i = 0; i < fileList.Count; i++)
{
var assembly = Assembly.LoadFile(fileList[i]);
var curAssemblyName = assembly.FullName.Substring(0, args.Name.IndexOf(','));
if (curAssemblyName == assemblyName)
return assembly;
}
So sieht das Verzeichnis aus, wo die Dateien liegen:
Das laden der DLLs hat wie bereits erwähnt problemlos funktioniert, nur die (aktuell letzte; Index 14 in der Liste) weigert sich und ich verstehe nicht wieso. Da scheint beim Laden irgendwas nicht zu klappen.
Wenn ich entsprechend davor folgende If-Abfrage mache:
PHP Code:
if (assemblyName == "Sweet Elitepvpers.MainApplication")
return Assembly.LoadFile(fileList[14]);
Exception ist folgende:







