情况如下:
假设我有一个包含 2 个 nuget 库引用的项目 - lib A 和 B:
- A 的版本为 1.5
- 但 B 引用了 A 的旧版本,例如 1.4
在VS中,一切都可以正确编译和运行(我猜是因为A 1.5实现了1.4所需的所有功能(。
但是在 Azure 模拟器中运行会导致立即的 TypeLoadException,大概是因为加载了旧版本的 A(我认为这是因为首先加载了 B,并且它的依赖项是 A 1.4(,因此无法识别在 A 1.5 中添加并由我的项目使用的类型和方法(例如 MyObject(。
我得到的正是:"无法从程序集'A,版本=1.4,区域性=中性,公钥令牌=空'加载类型'MyObject'。"我用 A 和 1.4 替换了真实名称和版本号,当然:)
我知道一种解决方案是更新 B 以使用 A 1.5,但是还有其他方法可以解决此问题吗?如果有其他库B,C,D,E...使用 A 1.4,我会更新所有这些中对 A 的引用......
感谢您的任何帮助
升级项目以使用最新的 NuGet 包,或尝试将绑定重定向添加到 app.config,以将程序集引用映射到更高版本。