'Newtonsoft.Json…' exists in both 'Blend\\Newtonsoft.Json.dll' and 'Solution\\packages\\…\\

匿名 (未验证) 提交于 2019-12-03 01:12:01

问题:

I'm not able to build the solution in Visual Studio 2013.

This just happened after I updated my JSON.NET package to 6.0.1. Before that, it was working like a charm.

Any ideas?

PS: It's probably something about OWIN. It references JSON.NET too I think, maybe dynamically?

Full error

Error   11  The type 'Newtonsoft.Json.Linq.JObject' exists in both  'c:\Program Files (x86)\Microsoft Visual Studio 12.0\Blend\Newtonsoft.Json.dll' and 'c:\Users\Me\Desktop\Solutions\[Project]\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll' C:\Users\Me\Desktop\Solutions\[Project]\TrendPin\App_Start\Startup.Auth.cs  48  21  [Project] 

I have this in my Web.Config

I have this in my .csproj

False..\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll

Build Output

1>------ Build started: Project: [Project].Backend, Configuration: Debug Any CPU ------ 1>  All packages listed in packages.config are already installed. 1>C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1635,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved.  These reference conflicts are listed in the build log when log verbosity is set to detailed. 1>  [Project].Backend -> C:\Users\Me\Desktop\Solutions\[Project]\[Project].Backend\bin\Debug\[Project].Backend.dll 2>------ Build started: Project: [Project].Data, Configuration: Debug Any CPU ------ 2>  All packages listed in packages.config are already installed. 2>  [Project].Data -> C:\Users\Me\Desktop\Solutions\[Project]\[Project].Data\bin\Debug\[Project].Data.dll 3>------ Build started: Project: [Project], Configuration: Debug Any CPU ------ 3>  All packages listed in packages.config are already installed. 3>C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1635,5): warning MSB3243: No way to resolve conflict between "Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed" and "Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed". Choosing "Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed" arbitrarily. 3>  Consider app.config remapping of assembly "Newtonsoft.Json, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed" from Version "4.5.0.0" [C:\Program Files (x86)\Microsoft Visual Studio 12.0\Blend\Newtonsoft.Json.dll] to Version "6.0.0.0" [C:\Users\Me\Desktop\Solutions\[Project]\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll] to solve conflict and get rid of warning. 3>C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1635,5): warning MSB3247: Found conflicts between different versions of the same dependent assembly. In Visual Studio, double-click this warning (or select it and press Enter) to fix the conflicts; otherwise, add the following binding redirects to the "runtime" node in the application configuration file:  3>C:\Users\Me\Desktop\Solutions\[Project]\[Project]\App_Start\Startup.Auth.cs(48,21,48,28): error CS0433: The type 'Newtonsoft.Json.Linq.JObject' exists in both 'c:\Program Files (x86)\Microsoft Visual Studio 12.0\Blend\Newtonsoft.Json.dll' and 'c:\Users\Me\Desktop\Solutions\[Project]\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll' 4>------ Skipped Build: Project: [Project].Tests, Configuration: Debug Any CPU ------ 4>Project not selected to build for this solution configuration  ========== Build: 2 succeeded, 1 failed, 0 up-to-date, 1 skipped ========== 

回答1:

You can reflect owin and see what is it looking for in references. If it looks for specific version, you in trouble but if not, just put the version you want into application bin together with owin and hope that the signatures match. Also remember, there is GAC. So, you have room for experimentation



回答2:

In your csproj file you will notice that there are 2 entries for Newtonsoft.Json. Remove the following entry:

..\packages\Newtonsoft.Json.5.0.6\lib\net45\Newtonsoft.Json.dll


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!