【发布时间】:2018-11-05 20:14:52
【问题描述】:
我有一个需要 Newtonsoft.Json DLL 版本 10 的 C# 类库(项目 A)。
但是我有另一个需要 Newtonsoft.Json DLL 版本 6 的 C# 类库(项目 B)。
我无法将项目 B 升级为使用 10,因为有太多重大更改。
是否可以同时存在两个版本?
我的问题是项目 A 有一个 Google.Apis 依赖项,它依赖于 Newtonsoft.Json DLL,所以我不能简单地重命名 DLL 并将它们都放在同一个目录中。
我看到其他解决方案提到 App.Config 文件,但由于这是一个类库,它没有配置文件。
有没有办法做到这一点?
【问题讨论】:
-
查找
<bindingRedirect\>配置文件元素:docs.microsoft.com/en-us/dotnet/framework/configure-apps/…。希望较新的版本向后兼容并使用相同的标记强命名。如果是这样,它应该可以解决您的问题。你说你有“太多的重大变化”。如果是这样,那么你可能是在一个糟糕的方式。 NewtonSoft 是否提供任何建议?我们以前经常报道过这样的 JSON.net 版本问题,但不是很久以前。 -
在这种情况下 bindingRedirect 是否有用,因为类库没有 app.config 文件?
-
不,您将
<bindingRedirect>放在两个类库的使用者身上。如果有“这里有太多的重大变化”,那可能没关系。 @Cookinski 的建议可能是唯一的解决方案。或查看 NewtonSoft 的支持网站。