我正在尝试基于Environment.Is64BitProcess
.
这基本上是这样工作的:
- 为事件注册一个事件处理程序
AppDomain.AssemblyResolve
在事件处理程序中,从依赖于 CPU 类型的子路径加载程序集:
private Assembly OnAssemblyResolve(object sender, ResolveEventArgs args) { // args.Name is the display name of an assembly, e.g.: // MyAssembly, Version=5.0.0.0, Culture=neutral, PublicKeyToken=abcdefghijklmn if(!args.Name.Contains("MyAssembly")) return null; var path = Path.Combine(GetCpuTypeDependentPath(), "MyAssembly.dll"); return Assembly.LoadFrom(path); }
现在,这有一个问题,它不检查已加载程序集的版本、publicKeyToken 等。
我现在想做的是调用Assembly.Load
并简单地提供额外的探测路径。我知道这不起作用,因为没有这样的过载。还有其他方法可以实现我的目标吗?