我正在编写一个测试应用程序来执行一些回归测试。这个想法是能够在库的多个版本上运行测试。我的目标是将dll加载到字典中,其中键是版本字符串(例如“3.0.0.0”),值是Assembly实例。我能够动态加载一个程序集并在其上调用一个方法,但是当我尝试加载第二个程序集时,出现以下异常:
The located assembly's manifest definition does not match the assembly reference.
我正在使用以下行加载程序集:
asm = Assembly.LoadFrom(lib, hash, System.Configuration.Assemblies.AssemblyHashAlgorithm.MD5);
'lib' 是 dll 的完整文件名和路径。'hash' 是 dll 的 md5 和。
我看起来即使我告诉 Windows“使用这个 dll”,它也会查看名称并说“我已经拥有那个”并使用先前加载的一个,并且由于哈希不匹配,它会失败。最初,正在加载的 dll 没有设置程序集版本,所以我将它设置为 4 个不同的版本,但它仍然抛出了相同的异常。
解决方法是什么?
乔丹