NuGet: 'X' ya tiene una dependencia definida para 'Y'

94

Recibo el siguiente error en NuGet al intentar instalar el paquete Microsoft.AspNet.Server.IIS

Attempting to resolve dependency 'Microsoft.AspNet.Loader.IIS.Interop (≥ 1.0.0-alpha4-10330)'.
Attempting to resolve dependency 'Microsoft.AspNet.Loader.IIS (≥ 1.0.0-alpha4-10330)'.
'Microsoft.AspNet.Loader.IIS' already has a dependency defined for 'Microsoft.AspNet.FeatureModel'.

¿Como resolverlo?

ACTUALIZACIÓN: Además, obtengo lo siguiente:

Attempting to resolve dependency 'Microsoft.Framework.DependencyInjection (≥ 1.0.0-alpha4-10326)'.
'Microsoft.Framework.DependencyInjection' already has a dependency defined for 'Microsoft.Framework.ConfigurationModel'.
TENNESSE.
fuente
¿Ha intentado actualizar Nuget a la última versión? Ver stackoverflow.com/questions/23286522/…
jrummell
2
@jrummell Tengo: 2.8.50313.46, no hay actualización en VS 2013 actualmente.
TN.

Respuestas:

151

Esto se resolvió instalando el último Administrador de paquetes NuGet:

https://visualstudiogallery.msdn.microsoft.com/4ec1526c-4a8c-4a84-b702-b21a8f5293ca

No olvide reiniciar Visual Studio.

TENNESSE.
fuente
5
Tengo el último Nuget "NuGet Package Manager 2.8.60318.667" pero obtengo "Install-Package: 'System.Collections' ya tiene una dependencia definida para 'Microsoft.NETCore.Platforms'". al intentar instalar "Install-Package Microsoft.AspNet.WebHooks.Custom.AzureStorage -Pre"
Gopi
2
Tengo el mismo problema que @TechJerk, en mi situación, estoy tratando de poner un proyecto en un paquete nuget. Puedo hacerlo localmente pero no en el servidor de compilación. En el servidor de compilación obtengo 'System.Collections' ya tiene una dependencia definida para 'Microsoft.NETCore.Platforms'. La actualización de NuGet no tuvo ningún efecto.
user3841460
Esto funciona para mi. En mi caso, estaba intentando instalar SQLite-net PCL (Xamarin). Visual Studio es 2013 Ultimate.
ramires.cabral
2
Tengo el mismo problema que @TechJerk pero con 'System.Net.Http' already has a dependency defined for 'System.IO'- intenté reinstalar y actualizar NuGet sin ningún efecto (actualmente estoy usando la versión 2.8 ... y Visual Studio 2012)
Filósofo torpe
2
Si recibe este error en TeamCity, es posible que también deba actualizar la configuración del paso de compilación para usar la última versión de nuget disponible.
Steve Greatrex
74

Solucioné un problema similar en mi solución al:

  1. Abriendo un símbolo del sistema
  2. Navegando a la carpeta .nuget en mi solución
  3. Corriendo nuget update -self

Esto actualizó la copia de lo NuGet.exeque estaba en mi solución de 2.8.0a 3.4.4, lo que corrigió que la 'X' ya tiene una dependencia definida para el error 'Y' que impedía descargar SSH.NET automáticamente antes de compilar.

(Si su solución no tiene una copia de NuGet.exeella, y es posible que no la tenga, entonces debería probar la solución en la respuesta de TN)

Robyn
fuente
Este es el que me lo arregló, pero lo ejecuté en el servidor de compilación. Los registros de la compilación fallida indicaron la ruta al NuGet.exe en cuestión.
InteXX
20

Probé la actualización, pero no funcionó para mí. Ayudado:

  1. Desinstale NuGet => Herramientas => Extensiones y actualización => Instalado
  2. Instalar NuGet
  3. Recargar Visual Studio
HuckFin.7b
fuente
1
Esto lo hizo por mí.
Naner
6

Me enfrenté a este error en la versión desactualizada de Visual Studio 2010. Debido a la configuración del proyecto, no pude actualizar esta versión a una más nueva. Por lo tanto, la actualización de NuGet recomendada anteriormente no solucionó las cosas para mí.

La razón principal del error en esta y otras situaciones similares está en las dependencias del paquete que intenta instalar, que no son compatibles con la versión .NET disponible en su proyecto.

La solución universal no es la actualización obligatoria de Visual Studio o .NET, sino la instalación de versiones anteriores de NuGet del mismo paquete compatible con su sistema.

No es posible saber con certeza cuál de las versiones anteriores funcionará. En mi caso, este comando instaló el paquete sin ninguna actualización de NuGet.

Install-Package X -Version [compatible version number]
Boris Zinchenko
fuente
5

Recibí este problema en nuestro servidor de compilación TeamCity. Intenté actualizar NuGet en el servidor de compilación (a través de TC) pero no funcionó. Finalmente resolví el problema cambiando el "Modo de actualización" del paso de compilación del instalador de Nuget de archivo de solución a packages.config.

Stewert
fuente
Gracias por la info. Tuve el mismo problema + actualizar NuGet a 4.0.0 / no como predeterminado y cambiar NuGet a v4 para esta configuración de compilación que estaba fallando, ¡hizo el trabajo!
Dr. Andrew Burnett-Thompson
pero como haces eso
ympostor
3

Estaba 'Newtonsoft.Json' already has a dependency defined for 'Microsoft.CSharp'teniendo el problema en el servidor de compilación de TeamCity. Cambié el " Modo de actualización " del paso de compilación del instalador de Nuget del archivo de solución a packages.config y NuGet.exe a la última versión (tenía 3.5.0) y funcionó.

szc0025
fuente
¿¿como hacer eso??
ympostor
Recibo este EXACTO mismo problema.
Jess
Vaya a Build Configuration Settings, en Build Steps, Add a step for NuGet Installer as Runner type. cambie el "Modo de actualización" del paso de compilación del instalador de Nuget del archivo de solución a packages.config y NuGet.exe a la última versión
szc0025
2
  1. Vaya al enlace https://www.nuget.org/packages/ClosedXML/0.64.0
  2. Busque sus paquetes NuGet
  3. Ver todas las versiones de paquetes relacionados
  4. Instale la versión inferior de los paquetes
Rahul
fuente
En realidad, esta es una buena solución en caso de que la versión de Visual Studio sea demasiado baja. En mi caso, tengo que trabajar con VS2012, que no es compatible con la versión más reciente de NuGet. Eso significa automáticamente que no siempre puedo descargar los paquetes más nuevos a través de la ventana Administrar paquetes NuGet.
Mixxiphoid
1

En mi caso, tuve que eliminar el archivo NuGet.exe en la carpeta Proyecto /.nuget y reconstruir el proyecto.

También tengo en NuGet.targets el DownloadNuGetExe marcado como verdadero:

<DownloadNuGetExe Condition=" '$(DownloadNuGetExe)' == '' ">true</DownloadNuGetExe>

Espero que te ayude.

Hernán Dario Velásquez García
fuente
0

La única solución que funcionó para mí fue desinstalar nuget por completo de Visual Studio 2013 y luego instalarlo nuevamente con el reinicio obligatorio de VS en el medio.

usuario7013486
fuente
0
  1. Vaya a Herramientas.
  2. Extensiones y actualizaciones.
  3. Actualice Nuget y cualquier otra característica importante.
  4. Reiniciar.

Hecho.

Anshul Rawat
fuente
0

En un proyecto que usa vs 2010, solo pude resolver el problema instalando una versión anterior del paquete que necesitaba a través de Package Manager Console.

Este comando funcionó:

PM> Install-Package EPPlus -Version 4.5.3.1

Este comando no funcionó:

PM> Install-Package EPPlus -Version 4.5.3.2
Genivan
fuente