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

Я пытаюсь установить serilog, и я получаю сообщение об ошибке

PM > Установочный пакет Serilog
Install-Package: "Serilog" уже есть определенная для "Microsoft.CSharp". На линии: 1 char: 1
+ Install-Package Serilog
+ ~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo: NotSpecified: (:) [Install-Package], InvalidOperationException
    + FullyQualifiedErrorId: NuGetCmdletUnhandledException, NuGet.PowerShell.Commands.InstallPackageCommand

Microsoft.CSharp уже упоминается в моем проекте

Ответ 1

Как @Tieson T. сказал, обновите "Диспетчер пакетов Nuget для Visual Studio" из окна Visual Studio > Инструменты > Расширения и обновления > Вкладка "Обновления". Выберите плагин Nuget и обновите его. Затем перезапустите визуальную студию после завершения установки. Я попробовал (Windows 8.1 64bit и Visual Studio 2013 Ultimate), и он работает.

Ответ 2

Чтобы добавить к этому. У меня была аналогичная проблема, но проблема была связана с тем, что наш сервер сборки был основан на TFS 2012 и использует старую версию MSBuild (которую мы не можем обновить в ближайшем будущем). Все построено и работает нормально локально, но когда сервер сборки попытался запустить, мы получили ту же ошибку.

Обходной путь, который я нашел, заключался в том, чтобы войти в папку пакетов решения, найти пакет, имеющий проблему (в моем случае Serilog.2.3.0 и связанные пакеты Sink, которые я установил). Откройте папку "lib", и вы увидите некоторые папки, связанные с различными файлами .NET. Удалите папки netstandard, соответствующие версиям .Net Core.

Недостатком этого является то, что вы должны проверить папки, которые вы так изменяете, чтобы MSBuild не пытался их восстановить.

Ответ 3

Пожалуйста, сделайте 2 шага ниже, это работает для меня или teamcity/jenkins

  • Если вы все еще используете Nuget CommandLine 2.8, попробуйте перейти на 3.5.
  • Если вы используете частный сервер Nuget, обновите Serilog.2.3.0.nupkg следующими шагами:

    2.1 Обновить файл спецификации Nuget:   Удалить      ...      ...

    2.2 Удалите папку lib/netstandard1.0 и lib/netstandard1.0

    2.3 Затем переустановите Serilog.2.3.0.nupkg на свой частный сервер Nuget