После добавления WebAPI
и зарегистрируйте его в Global.asax
.
Мы обнаруживаем, что наши веб-приложения разбиваются по этой строке:
Line 17: GlobalConfiguration.Configure(WebApiConfig.Register);
Сообщение об ошибке:
Could not load file or assembly 'Newtonsoft.Json, Version=4.5.0.0, Culture=neutral,
PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies.
The system cannot find the file specified.
После некоторой проверки я обнаружил, что мы используем Json.net 6
в этом приложении MVC 5.1
. Означает ли это, что нам нужно перейти на Json.net 4.5
для WebAPI
для работы?
В моем .csproj
файле есть только одна запись:
<Reference Include="Newtonsoft.Json, Version=6.0.3.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Newtonsoft.Json.6.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
<Private>False</Private>
</Reference>
Когда я заглядываю в свой Json.NET
в Manage NuGet Packages
, он также говорит, что мой Json.NET
- версия 6.0.3.
Кроме того, в моем web.config
уже есть оператор bindingRedirect
.
<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>
Но если я посмотрю references
веб-проекта внутри визуальной студии. Путь Newtonsoft.Json
указывает на C:\Program Files (x86)\Microsoft Visual Studio 12.0\Blend\Newtonsoft.Json.dll
, но Copy Local
является ложным.
Как это может быть? Как мы можем справиться с этим конфликтом?