我以为我知道 .NET 运行时如何在运行时加载程序集引用,但这种情况引起了我自己的怀疑。
我有一个程序集 Client.exe,它引用了一个程序集 Thirdparty.dll(版本 5.1.0.0)。
Client.exe 指程序集 Analytics.dll (2.1.0.0)
Thirdparty.dll 也指程序集 Analytics.dll (2.0.0.0)(注意这是不同的版本)。
现在,当我运行 Client.exe 时,它加载 Thirdparty.dll (5.1.0.0)、Analytics.dll (2.1.0.0) 就好了。
我想知道,为什么对 Thirdparty.dll 的调用不会失败,因为 Thirdparty.dll 的清单中有一个 Analytics.dll (2.0.0.0) 的条目,而这个版本根本没有加载到 AppDomain 中。我们有 Analytics.dll (2.1.0.0)。我知道 2.0.0.0 和 2.1.0.0 之间没有重大变化,但是这应该是例外的情况吗?