我在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时,我发现绑定重定向已到位:
这正是警告建议的内容.
我该如何修复此警告?
我发现从项目文件中删除此部分修复了问题.
<ItemGroup> <Reference Include="Newtonsoft.Json"> <HintPath>..\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> </Reference>
这里我用来修复警告的步骤:
在VS中卸载项目
编辑.csproj文件
搜索所有对Newtonsoft.Json程序集的引用
找到两个,一个到v6,一个到v5
用v6替换v5的引用
重新加载项目
构建并注意程序集引用失败
查看引用,看看现在有两个到Newtonsoft.Json.删除无法解决的问题.
重建 - 没有警告
我有这个问题,因为我更新了包,其中包括对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版本都更新到最新版本,一切都很好.
我有一种感觉会再次出现.
如果以上都不起作用,请尝试在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>
我从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的地狱问题。它发生得太频繁了,并导致进度突然停止,直到修复,这通常是通过反复试验造成的。
好的,希望这应该可以解决所有(合理的)程序集引用差异...
检查错误。
程序集重定向后检查web.config。如果不存在,请创建一个。
右键单击该装配的引用,然后选择“属性”。
在属性表中检查版本(不是运行时版本)。收到。
粘贴到newVersion属性中。
为了方便起见,请将oldVersion的最后部分更改为高,圆和虚构的部分。
麾。