Несколько версий Newtonsoft.json при компиляции - PullRequest
0 голосов
/ 23 октября 2019

Я работаю над смешанным ASP.NET, проектом библиотеки классов в .NET, используя Framework 4.6.1. При компиляции проекта я получаю следующую ошибку:

Error   CS0433  The type 'JObject' exists in both 'Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' and 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'    KBTryk3 D:\SourceCodes\Trykonline_3\Source\KBTryk3\Controllers\Api\CustomerController.cs

В решении существовал v6.0.0.0, но я обновился до 12.xxx через менеджер пакетов nuget, и теперь он не будет компилироваться из-заэта ошибка. Я искал по всему решению, но не могу найти ссылку на старую библиотеку newtonsoft.

Есть предложения, с чего начать?

1 Ответ

0 голосов
/ 23 октября 2019

Я думаю, что у вас может быть два проекта, ссылающихся на разные версии Newtonsoft. Также возможно, что вы используете библиотеку, для которой требуется определенная версия Newtonsoft, отличная от той, на которую ссылается ваш проект.

Проверьте ссылки на каждый проект в решении и убедитесь, что, если Newtonsoft присутствует,это указывает на правильную версию (v12.0.0.0).

Если это не помогает, добавьте перенаправление сборки в файл конфигурации проекта, который вызывает ошибку:

<configuration> 
    <!-- other sections in your file here -->
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed"/>
            <bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0"/>
          </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>    

Это приведет к тому, что любые ссылки на более старые версии будутперенаправить на новый.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...