Adr*_*Rus 3 .net c# assemblies
想象一下这种情况:
var ass1 = Assembly.LoadFrom(@"C:\Work\3.59\assembly1.dll");
var ass2 = Assembly.LoadFrom(@"C:\Work\3.60\assembly1.dll");
Debug.Assert(ass1 != ass2);
Run Code Online (Sandbox Code Playgroud)
上述断言失败了.即使上面的两个程序集具有不同的版本和位置,第二个调用似乎也会返回第一个程序集.
程序集没有强名称,无法签名.
有没有办法强制框架在相同的上下文和域中加载它们?
请Assembly.LoadFile(path)改用.
来自MSDN
LoadFrom方法具有以下缺点.请考虑使用Load.
如果已加载具有相同标识的程序集,则即使指定了不同的路径,LoadFrom也会返回已加载的程序集.
如果程序集没有强名称,则忽略版本以进行绑定.但是,如果它具有强名称,则程序集引用中的整个版本需要与找到的程序集匹配.