Necesito hacer referencia a un archivo DLL que está disponible en 2 versiones (una para 32 bits y otra para 64 bits). Mi objetivo es crear una aplicación web que funcione en sistemas de 32 y 64 bits.Utilizando un dll específico de 32 bits o 64 bits, dependiendo del bitness del proceso
pensé en referencia a la asamblea de 32 bits por defecto y utilizar el evento AssemblyResolve para cargar la versión de 64 bits (si la carga de la versión de 32 bits con errores):
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);
}
Pero incluso cuando se produce un BadImageFormatException, el manejador _AssemblyResolve se no ser llamado ¿Hay alguna otra manera de lograr el comportamiento propuesto?
Parece que no hay mejor manera. Gracias de cualquier manera. – ollifant