【发布时间】:2016-01-22 10:59:32
【问题描述】:
使用 Visual Studio 2013 专业版:
这是我对使用 NuGet 包的网站项目(不是应用程序)的一个小难题:
包 A 依赖包 Newtonsoft.Json
我安装包 A,然后安装它的依赖项:Newtonsoft.Json 版本 6.0.0
我测试了我的网页,一切正常……
在 Visual Studio 中,我执行以下操作:
工具 -> NuGet 包管理器 -> 管理用于解决方案的 NuGet 包……
我点击“更新”,包管理器显示 Newtonsoft.Json 有可用更新(至版本 8.0.2)
当然,想要最新最好的,我点击“更新”
Newtonsoft.Json 已下载并更新到版本 8.0.2
我再次测试我的网页,结果……
异常:System.IO.FileLoadException:无法加载文件或程序集“Newtonsoft.Json,版本=6.0.0.0,文化=中性,PublicKeyToken=30ad4fe6b2a6aeed”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (来自 HRESULT 的异常:0x80131040) 文件名:'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'
所以我的问题是:如何解决这个问题?...
我能做的唯一方法是(到目前为止),是删除所有包并再次重新安装包 A,因为它需要 Newtonsoft.Json 的 6.0.0 版
但是,如果我使用另一个依赖于不同版本的 Newtonsoft.Json 的 NuGet 包(比如说,包 B)怎么办?换句话说,如果我使用任何其他具有相同依赖但版本不同的 NuGet 包,那些使用不存在特定依赖版本的包的页面最终会引发异常?
有什么办法可以绕过这种情况——或者如果我有多个依赖于 Newtonsoft.Json 的包——所有包都必须依赖相同的版本吗?
希望我说得足够清楚,提前谢谢。
【问题讨论】:
标签: asp.net visual-studio-2013 nuget