Ho bisogno di fare riferimento a una DLL che è disponibile in 2 versioni (una per 32 bit e una per 64 bit). Il mio obiettivo è creare un'applicazione web che funzioni su entrambi i sistemi a 32 e 64 bit.Utilizzo di una dll specifica a 32 bit o 64 bit in base al processo bitness
ho pensato di riferimento il gruppo a 32 bit per impostazione predefinita e utilizzando l'evento AssemblyResolve per caricare la versione a 64 bit (se il caricamento della versione a 32 bit fallito):
static void Main(string[] args)
{
AppDomain.CurrentDomain.AssemblyResolve += _AssemblyResolve;
// Try LoadAssembly ...
}
static System.Reflection.Assembly _AssemblyResolve(object sender, ResolveEventArgs args)
{
var path = string.Format(@"...\lib_x64\{0}.dll", args.Name);
return Assembly.LoadFrom(path);
}
Ma anche quando si verifica un BadImageFormatException, il gestore _AssemblyResolve sarà non essere chiamato. C'è un altro modo per ottenere il comportamento proposto?
Sembra che non ci sia un modo migliore. Grazie comunque. – ollifant