首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在新的ASP.NET MVC5项目中更新NuGet包引用后,如何修复与JSON.NET的程序集版本冲突?

在新的ASP.NET MVC5项目中更新NuGet包引用后,如何修复与JSON.NET的程序集版本冲突?
EN

Stack Overflow用户
提问于 2014-02-01 20:31:37
回答 11查看 119.8K关注 0票数 92

我在VS2013(更新1)中创建了一个新的ASP.NET MVC5Web项目,然后更新了所有的NuGet包。当我构建这个项目时,我得到了以下警告:

警告MSB3243:无法解决"Newtonsoft.Json,Version=6.0.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed“和"Newtonsoft.Json,Version=4.5.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed”之间的冲突。

然而,当我检查web.config时,我看到绑定重定向已经就位:

代码语言:javascript
复制
  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/>
  </dependentAssembly>

这正是警告所建议的。

如何修复此警告?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2014-02-01 22:45:02

下面是我用来修复警告的步骤:

  • 卸载VS
  • 中的项目编辑.csproj文件
  • 搜索对Newtonsoft.Json程序集的所有引用
    • 找到两个,一个指向v6,另一个指向v5
    • 使用v6

替换对v5的引用

重新加载project

  • Build并注意程序集引用失败
  • References,并看到现在有两个要加载的引用。删除resolve.
  • Rebuild失败的那个- no warnings
票数 109
EN

Stack Overflow用户

发布于 2014-10-31 00:11:11

我遇到这个问题是因为我更新了包,其中包括引用了Newtonsoft.Json 4.5.6的Microsoft.AspNet.WebApi,并且我已经安装了版本6。使用版本6还不够聪明。

为了解决这个问题,在WebApi更新之后,我打开了Tools > NuGet Package Manager > Pacakge Manager Console并运行:

代码语言:javascript
复制
 Update-Package Newtonsoft.Json

日志显示6.0.x和4.5.6版本都更新到了最新版本,一切正常。

我有预感这个问题还会再次出现。

票数 32
EN

Stack Overflow用户

发布于 2014-02-17 06:48:30

我发现从项目文件中删除这一部分可以解决这个问题。

代码语言:javascript
复制
<ItemGroup>
<Reference Include="Newtonsoft.Json">
  <HintPath>..\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21498074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档