NuGet Package Manager: "AutoMapper" вже має залежність, визначену для "Microsoft.CSharp"


77

Я намагаюся додати AutoMapper як залежність до проекту за допомогою NuGet на Visual Studio Premium 2012, але це не вдається.

Він говорить:


Помилка операції 'AutoMapper' вже має залежність, визначену для 'Microsoft.CSharp'.

Я можу додати інші залежності.

Я використовую останню версію менеджера пакетів для VS 2012:

Менеджер пакунків NuGet 2.8.60318.667

Будь-які ідеї, що я повинен перевірити?


1
Можливий дублікат Automapper NuGet пакета не вдалося
Venky

@Venky різниця між цим питанням і моїм полягає в тому, що я використовую останню версію менеджера пакунків самородків
pomber

Відповіді:


95

Проблема в тому, що ваш менеджер пакунків NuGet занадто старий. Вам потрібен NuGet 2.12, оскільки він підтримує новіші .NETStandard фреймворки, які використовує пакет AutoMapper 5.0.1 NuGet.

AutoMapper має групову залежність, яка визначає цільову структуру .NETStandard. Оскільки ваша версія NuGet Package Manager застаріла, вона не розпізнає цю цільову структуру і перетворює її на невідому цільову структуру, і ви отримуєте повторювані фреймворки, оскільки .NETStandard використовується кілька разів у цьому пакеті NuGet. Це спричиняє помилку:

'AutoMapper' already has a dependency defined for 'Microsoft.CSharp'

На жаль, NuGet 2.12 недоступний для Visual Studio 2012, але доступний для Visual Studio 2013.

Тож вам потрібно оновити до Visual Studio 2013 або новішої версії, або вам доведеться використовувати старіший пакет AutoMapper NuGet, який не підтримує .NETStandard.


1
Дякую, Метте, я думаю, ти мав на увазі, що "недоступний" для VS 2012
Помбер

З незрозумілих мені причин я застряг у VS 2012, тому я залишатимусь у попередній версії
pomber

41

Здається, проблема в поточній версії automapper:

AutoMapper 5.0.0 вівторок, 28 червня 2016 р

Я спробував з попередньою версією, і вона працює:

PM> Install-Package AutoMapper -Verbose
Install-Package : 'AutoMapper' already has a dependency defined for 'Microsoft.CSharp'.
At line:1 char:16
+ Install-Package <<<<  AutoMapper -Verbose
    + CategoryInfo          : NotSpecified: (:) [Install-Package], InvalidOperationException
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand

PM> Install-Package AutoMapper -Version 4.2.1
Installing 'AutoMapper 4.2.1'.
Successfully installed 'AutoMapper 4.2.1'.

Отже, якщо ви не можете оновити NuGet Package Manager, відповідь така:

PM> Install-Package AutoMapper -Version 4.2.1

1
У мене виникла ця проблема, і я отримував саме цю помилку із завдання VSTS Build для NuGet Packager. Я знизився до 4.2.1 і це виправило помилку.
AC4

До того, як я понизився, я спробував оновити до 5.0.2, і все одно це дало мені помилку.
AC4

Я отримую це: Не вдається знайти версію '4.2.1' пакета 'AutoMapper'. У рядку: 1 char: 1 + Install-Package AutoMapper -Версія 4.2.1
Джо

Правильною відповіддю є вища за Метта Уорда. Це рішення справді працює, але це дуже короткострокове виправлення ...
MPritchard,

Рішення @MPritchard Matt не працює для VS2012, що було однією з моїх проблем
помбер

30

Мені довелося оновити NuGet.exe, який був включений у рішення, щоб мати можливість створювати пакети NuGet, запустивши:

nuget.exe update -self


1
Це вирішило проблему для мене. Це повинна бути правильна відповідь, оскільки насправді зниження версії AutoMapper - це не правильна відповідь.
Раффо

За винятком того, що це відбувається і сьогодні, використовуючи Nuget 4.5.1. Здається, це проблема, специфічна для AutoMapper
ebol2000

26

У мене була така сама проблема на VS2013. Мені довелося оновити VS2013 Update 5 і отримати останню дистрибутив nuget для VS2013 за адресою https://dist.nuget.org/visualstudio-2013-vsix/v2.12.0/NuGet.Tools.vsix

Після цього я перезапустив Visual Studio. Після цього я зміг скористатися пакетом Automapper 5.0.2


1
Працював і у мене. Дякуємо, що врятували мій день.
Sameer Awate

3
Працював у мене! Дякую. (Мені потрібно було перезапустити VS після встановлення нової версії Nuget)
Даніель Сільва,

17

Перейдіть у Visual Studio> Інструменти> Розширення та оновлення

Знайдіть оновлення в меню лівого акордеону, перейдіть до галереї Visual Studio.

Ви знайдете оновлення для Nuget.

Оновіть nuget-пакет і спробуйте встановити або побудувати проект.

Дякую, GT


Працював у мене :)
Пандіян Класний

2

Інший обхідний шлях, якщо ви застрягли у VS2012 та старій версії Nuget:

  • Знайдіть папку кеш-пам'яті менеджера пакунків Nuget VS 2012 (із Tools- Options- Nuget Package Manager)
  • Відкрийте за AutoMapper.5.x.x.nupkgдопомогою улюбленого Zip Tool
  • Змінити файл AutoMapper.nuspec- я просто видалив усі залежності, крім.NETFramework4.5
  • Додайте папку кешу як джерело Nuget (також у Tools- Options- Nuget Package Manager)
  • Встановіть Automapper за допомогою консолі або графічного інтерфейсу, але переконайтеся, що спочатку вибрали нову папку кешу як джерело пакета.

Звичайно, наступну версію Automapper, мабуть, також потрібно адаптувати, щоб встановити її.


0

Це виглядає як невідповідність між версією .NET, що використовується пакетом Automapper, та вашим проектом. Чи можете ви підтвердити версію .NET, яку використовує ваш проект?


0

Automapper 6.0.2 - nuget 2.8.8 видає цю помилку. Потрібно оновити до 3.4.4, щоб це працювало.


0

Вилучено як CSharp, так і AutoMapper. Спочатку встановив CSharp (4.0.0.0), а потім додав Automapper (6.1.1.0). Це вирішило проблему для мене.


0

Я спостерігав саме цю проблему, відкриваючи проект з Visual Studio 2010.

Після відкриття з VS2017 я зміг встановити AutoMapper без помилок.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.