Мне нужно сослаться на DLL, которая доступна в двух версиях (одна для 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 не вызывается. Есть ли другой способ добиться предложенного поведения?