我需要引用一個DLL有2個版本(一個用於32位和一個用於64位)。 我的目標是構建一個適用於32位和64位系統的Web應用程序。使用32位或64位特定的DLL取決於進程位
我想到了默認引用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處理程序將不叫。有沒有其他方法可以實現建議的行爲?
看起來沒有更好的方法。不管怎麼說,還是要謝謝你。 – ollifant