Мне нужно сослаться на DLL, которая доступна в 2 версиях (одна для 32-битной и одна для 64-битной).Моя цель - создать веб-приложение, которое работает как на 32, так и на 64-битных системах.
Я думал о том, чтобы ссылаться на 32-битную сборку по умолчанию и использовать событие AssemblyResolve для загрузки 64-битной версии (если загрузка 32-битной версии не удалась):
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);
}
Но даже когда возникает исключение BadImageFormatException, обработчик _AssemblyResolve вызываться не будет.Есть ли другой способ достижения предложенного поведения?