Program is referring to a different version of Newtonsoft.JSON although a different version is loaded

0

I was working on a project to Self host a Web API project. There are two packages 1) Microsoft.AspNet.WebAPi.SelfHost 2) Microsoft.AspNet.WebApi. I had run into a problem where two different versions of NewtonSoft.Json had been installed by the above packages and it showed a compile-time warning as well as a run time exception. If I install Microsoft.AspNet.WebAPi.SelfHost before Microsoft.AspNet.WebApi then Newtonsoft.Json version 6.0.0.0. is installed by the former and the version 11.0.0.0 by the later which gives the error. but if I install Microsoft.AspNet.WebApi, then version 11.0.0.0 is installed and Microsoft.AspNet.WebAPi.SelfHost doesn't install Newtonsoft.Json but I still get the following error

"Could not load file or assembly 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its >dependencies. The located assembly's manifest definition >does not match the assembly reference. (Exception from >HRESULT: 0x80131040)/nSystem.IO.FileLoadException"

although the following is the entry in my web.config reference

"culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />"

I am really not getting why it is referring to version 6.0.0.0 when a newer version is installed. And if I need both the versions how do I refer to each without causing compiler issues.

Edit: Another thing to mention here is that it errors only after publishing the file but if I run it in release mode, no issue is occurring.

I have tried this after creating a new folder from scratch.

Edit: I have also tried checking the GAC. Newtonsoft.JSON is not available in the GAC. Can anyone tell how to check the manifest/config file of a third-party package like the Microsoft.AspNet.WebAPi.SelfHost

Edit: I also checked the solutions from the linked thread, but it didn't help.

Edit: I just now edited Microsoft.Owin from version 2.0.2 to version 4, but strangely after publishing and running it is still referring to version 2. I checked web.config and package.config, they have correct assembly redirects as well as correct package. So i guess there is some other place where it is not getting updated. Anyone can help me on this?

c#
json
asp.net-web-api
dependencies
dependency-management
asked on Stack Overflow Oct 26, 2018 by Prajat Padhi • edited Oct 26, 2018 by Prajat Padhi

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0