Assembly.LoadFrom mit Pfad und vollständiger Assemblyname

8

Ich versuche das dynamische Laden bestimmter Assemblies basierend auf Environment.Is64BitProcess zu implementieren.
Das funktioniert grundsätzlich so:

  • Registrieren Sie einen Ereignishandler für das AppDomain.AssemblyResolve -Ereignis
  • Laden Sie die Assembly im Event-Handler aus dem vom CPU-Typ abhängigen Unterpfad:

    %Vor%

Nun hat dies das Problem, dass es nicht nach der Version, publicKeyToken usw. der geladenen Assembly sucht.
Ich möchte jetzt Assembly.Load aufrufen und einfach einen zusätzlichen Suchpfad angeben. Ich weiß, dass dies nicht funktioniert, da es keine solche Überlastung gibt. Gibt es einen anderen Weg, um mein Ziel zu erreichen?

    
Daniel Hilgarth 07.08.2012, 14:17
quelle

2 Antworten

2

Vergleichen Sie einfach die Eigenschaften der gefundenen Baugruppe mit der angeforderten. Eine Versionsprüfung könnte beispielsweise so aussehen:

%Vor%     
Hans Passant 07.08.2012, 19:08
quelle
1

Wenn Sie selbst keine Baugruppen testen, sehe ich nicht, dass Sie das tun können. Sie müssten nur eine weitere AppDomain starten, die nach einer übereinstimmenden Assembly sucht, sodass Sie Assemblys, die während der Untersuchung geladen wurden, entladen können. Leider

    
Nikola Radosavljević 07.08.2012 14:43
quelle

Tags und Links