Muszę odwołać się do biblioteki DLL, która jest dostępna w 2 wersjach (jedna dla 32-bitowej i jedna dla 64-bitowej). Moim celem jest zbudowanie aplikacji internetowej działającej na systemach 32- i 64-bitowych.Używanie dll 32-bitowych lub 64-bitowych w zależności od procesu bitness
Myślałem o przedstawieniu zespołu 32bit domyślnie za pomocą zdarzenia AssemblyResolve załadować wersję 64bit (jeśli załadowaniu wersji 32-bitowej nie powiodło się):
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);
}
Ale nawet gdy wystąpi BadImageFormatException, przewodnik _AssemblyResolve będzie nie daj się wezwać. Czy istnieje inny sposób osiągnięcia proponowanego zachowania?
Wygląda na to, że nie ma lepszego sposobu. Dzięki i tak. – ollifant