"Newtonsoft.Json" уже имеет зависимость, определенную для "Microsoft.CSharp",

Я устанавливаю NewtonSoft.Json для анализа Json в приложении .Net. Когда я использую VS 2012, он не может быть установлен через NuGet. Это ошибка, которую я получил:

'Newtonsoft.Json' already has a dependency defined for 'Microsoft.CSharp'

Я попытался скопировать DLL и просто использовать ее, похоже, что некоторые зависимости облажались в этой версии (10.0.2).

После нескольких часов исследований, наконец, я обнаружил, что это проблема совместимости VS2012 и Newtonsoft Json 10.0.2.

Ответ 1

потому что диспетчер пакетов NuGet (версия 2.8.60318.667) для VS 2012 не поддерживает .NETStandard (используется для последних версий Newtonoft Json Parser, https://github.com/NuGet/Home/issues/3131

Я решил эту проблему, установив более старую версию Newtonsoft Json:

PM> Install-Package Newtonsoft.Json -Version 9.0.1

Более подробная информация на: https://github.com/NuGet/Home/issues/5162.

Ответ 2

Установка/восстановление пакетов NuGet, на которые настроен стандарт .NET, требует NuGet.exe версии 3.4 +.

Из примечаний к выпуску для 3.4: https://docs.microsoft.com/en-us/nuget/release-notes/nuget-3.4

Новые функции

  • Поддержка прокси-серверов netstandard и netstandardapp

Эта версия NuGet поставляется с обновлением VS2015 2

NuGet 3.4 был выпущен 30 марта 2016 года как часть обновления Visual Studio 2015 Update 2 и Visual Studio 15 Preview Release

Ответ 3

У меня была такая же проблема с использованием VS2015 и создание пакета NuGet с зависимостью от Newtonsoft.Json version = 10.0.3. Я использовал подход, предложенный Vin.X в его ответе, как о работе.

После установки Newtonsoft.Json version = 9.0.1 в ваш проект добавьте следующее описание в ваш .nuspec файл.

<dependencies>
      <dependency id="Newtonsoft.Json" version="10.0.3" />
</dependencies>

Приложение, которое потребляет ваш пакет, будет устанавливать версию Newtonsoft.Json = 10.0.3 вместе с вашим пакетом как зависимость от вашего проекта.

Ответ 4

Попробуйте удалить существующую версию пакета из каталога пакета решения, а затем попробуйте следующую команду. Это сработало для меня.

    PM> Install-Package Newtonsoft.Json -Version 9.0.1

Ответ 5

просто используя Try {} catch() {}

    try{
  int  offset = 0;

 while (true)
                {
                    Telegram.Bot.Types.Update[] updates = bot.GetUpdates(offset).Result;
    }

     }
                catch (Exception ef)
                {
                    Debug.WriteLine("Error");
                }

Ответ 6

Попробуйте установить Newtonsoft MsgPack, он установит DLL Newtonsoft.json в ваш проект.