0

情况如下:

假设我有一个包含 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),因此添加了类型和方法(例如MyObject) A 1.5 和我的项目使用的无法识别。

我得到的正是:“无法从程序集'A,Version = 1.4,Culture = Neutral,PublicKeyToken = null'中加载类型'MyObject'。” 当然,我已经用 A 和 1.4 替换了真实姓名和版本号 :)

我知道一种解决方案是将 B 更新为使用 A 1.5,但是还有其他方法可以解决这个问题吗?如果还有其他使用 A 1.4 的库 B、C、D、E...,我将更新所有这些库中对 A 的引用...

谢谢你的帮助

4

1 回答 1

0

升级您的项目以使用最新的 NuGet 包或尝试将绑定重定向添加到您的 app.config 以将程序集引用映射到更高版本。

于 2013-10-01T14:01:39.897 回答