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

 书友16941424_529 发布于 2023-01-29 22:33

我在VS 2013(Update 1)中创建了一个新的ASP.NET MVC 5 Web项目,然后更新了所有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时,我发现绑定重定向已到位:

  
    
    
  

这正是警告建议的内容.

我该如何修复此警告?

6 个回答
  • 我发现从项目文件中删除此部分修复了问题.

    <ItemGroup>
    <Reference Include="Newtonsoft.Json">
      <HintPath>..\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
    </Reference>
    

    2023-01-29 22:44 回答
  • 这里我用来修复警告的步骤:

    在VS中卸载项目

    编辑.csproj文件

    搜索所有对Newtonsoft.Json程序集的引用

    找到两个,一个到v6,一个到v5

    用v6替换v5的引用

    重新加载项目

    构建并注意程序集引用失败

    查看引用,看看现在有两个到Newtonsoft.Json.删除无法解决的问题.

    重建 - 没有警告

    2023-01-29 22:44 回答
  • 我有这个问题,因为我更新了包,其中包括对Newtonsoft.Json 4.5.6的引用的Microsoft.AspNet.WebApi,我已经安装了版本6.使用版本6并不够聪明.

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

     Update-Package Newtonsoft.Json
    

    日志显示6.0.x和4.5.6版本都更新到最新版本,一切都很好.

    我有一种感觉会再次出现.

    2023-01-29 22:46 回答
  • 如果以上都不起作用,请尝试在web.config或app.config中使用它:

    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <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>
        </assemblyBinding>
    </runtime>
    

    2023-01-29 22:49 回答
  • 我从Newtonsoft.Json 11.0.1升级到12.0.2。在记事本++中打开项目文件,我发现

    <Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
          <HintPath>..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
        </Reference>
    

    <ItemGroup>
        <Reference Include="Newtonsoft.Json">
          <HintPath>..\packages\Newtonsoft.Json.11.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
        </Reference>
      </ItemGroup>
    

    我删除了ItemGroup,其中将引用包装到带有11.0.1版本的提示路径。

    这些问题可能会令人沮丧地发现。而且,开发人员通常遵循与以前的项目设置相同的步骤。先前的设置没有遇到问题。无论出于何种原因,项目文件有时都会错误地更新。

    我非常希望微软能够从弹出的窗口中解决这些Visual Studio DLL的地狱问题。它发生得太频繁了,并导致进度突然停止,直到修复,这通常是通过反复试验造成的。

    2023-01-29 22:50 回答
  • 程序集重定向错误的最终解决方案

    好的,希望这应该可以解决所有(合理的)程序集引用差异...

      检查错误。

      程序集重定向后检查web.config。如果不存在,请创建一个。

      右键单击该装配的引用,然后选择“属性”。

      在属性表中检查版本(不是运行时版本)。收到。

      粘贴到newVersion属性中。

      为了方便起见,请将oldVersion的最后部分更改为高,圆和虚构的部分。

    麾。

    2023-01-29 22:50 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有