NuGet: 'X' já tem uma dependência definida para 'Y'

94

Estou recebendo o seguinte erro no NuGet ao tentar instalar o pacote 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 resolver isso?

ATUALIZAÇÃO: Além disso, estou recebendo o seguinte:

Attempting to resolve dependency 'Microsoft.Framework.DependencyInjection (≥ 1.0.0-alpha4-10326)'.
'Microsoft.Framework.DependencyInjection' already has a dependency defined for 'Microsoft.Framework.ConfigurationModel'.
TN.
fonte
Você tentou atualizar o Nuget para o mais recente? Consulte stackoverflow.com/questions/23286522/…
jrummell
2
@jrummell eu tenho: 2.8.50313.46, nenhuma atualização no VS 2013 atualmente.
TN.

Respostas:

151

Isso foi resolvido com a instalação do gerenciador de pacotes NuGet mais recente:

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

Não se esqueça de reiniciar o Visual Studio.

TN.
fonte
5
Tenho o Nuget mais recente "NuGet Package Manager 2.8.60318.667", mas recebo "Install-Package: 'System.Collections' já tem uma dependência definida para 'Microsoft.NETCore.Platforms'". ao tentar instalar "Install-Package Microsoft.AspNet.WebHooks.Custom.AzureStorage -Pre"
Gopi
2
Eu tenho o mesmo problema que @TechJerk, na minha situação, estou tentando colocar um projeto em um pacote nuget. Posso fazer isso localmente, mas não no servidor de compilação. No servidor de compilação, obtenho 'System.Collections' que já possui uma dependência definida para 'Microsoft.NETCore.Platforms'. Atualizar o NuGet não teve efeito.
user3841460
Isso funciona para mim. No meu caso, estava tentando instalar o SQLite-net PCL (Xamarin). Visual Studio é 2013 Ultimate.
ramires.cabral
2
Estou tendo o mesmo problema que @TechJerk, mas com 'System.Net.Http' already has a dependency defined for 'System.IO'- Tentei reinstalar e atualizar o NuGet sem nenhum efeito (atualmente estou usando a versão 2.8 ... e Visual Studio 2012)
Blundering Philosopher
2
Se você está recebendo esse erro no TeamCity, também pode precisar atualizar as configurações da etapa de compilação para usar a versão nuget mais recente disponível.
Steve Greatrex
74

Corrigi um problema semelhante em minha solução:

  1. Abrindo um prompt de comando
  2. Navegando para a pasta .nuget em minha solução
  3. Corrida nuget update -self

Isso atualizou a cópia do NuGet.exeque estava na minha solução de 2.8.0para 3.4.4, que corrigiu o 'X' já tinha uma dependência definida para o erro 'Y' que o impedia de baixar SSH.NET automaticamente antes de compilar.

(Se a sua solução não tiver uma cópia NuGet.exe- e pode não ter - então você deve tentar a solução na resposta de TN)

Robyn
fonte
Este é o que corrigiu para mim, mas eu o executei no servidor de compilação. Os logs da compilação com falha indicaram o caminho para o NuGet.exe em questão.
InteXX
20

Tentei a atualização, mas não funcionou para mim. Ajudou:

  1. Desinstalar NuGet => Ferramentas => Extensões e atualizar => Instalado
  2. Instale NuGet
  3. Recarregue o Visual Studio
HuckFin.7b
fonte
1
Isso fez isso por mim.
Naner
6

Eu encontrei este erro na versão desatualizada do Visual Studio 2010. Devido à configuração do projeto, não consegui atualizar esta versão para a mais recente. Portanto, a atualização do NuGet aconselhada acima não corrigiu as coisas para mim.

O motivo principal do erro nesta e em situações semelhantes está nas dependências do pacote que você tenta instalar, que não são compatíveis com a versão .NET disponível em seu projeto.

A solução universal não é a atualização obrigatória do Visual Studio ou .NET, mas na instalação de versões mais antigas do NuGet do mesmo pacote compatível com o seu sistema.

Não é possível dizer com certeza qual das versões anteriores funcionará. No meu caso, este comando instalou o pacote sem nenhuma atualização do NuGet.

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

Eu estava recebendo esse problema em nosso servidor de compilação TeamCity. Tentei atualizar o NuGet no servidor de compilação (via TC), mas não funcionou. Finalmente resolvi o problema alterando o "Modo de atualização" da etapa de compilação do Nuget Installer do arquivo de solução para packages.config.

Stewert
fonte
Obrigado pela informação. Eu tive o mesmo problema + atualizar o NuGet para 4.0.0 / não como padrão e alterar o NuGet para v4 para esta configuração de compilação que estava falhando fez o trabalho!
Dr. Andrew Burnett-Thompson
Mas como você faz isso?
ympostor
3

Eu estava pegando o problema 'Newtonsoft.Json' already has a dependency defined for 'Microsoft.CSharp'no servidor de compilação TeamCity. Mudei o " Modo de atualização " da etapa de compilação do Nuget Installer do arquivo de solução para packages.config e NuGet.exe para a versão mais recente (eu tinha 3.5.0) e funcionou !!

szc0025
fonte
Como fazer isso??
ympostor
Estou recebendo EXATAMENTE o mesmo problema.
Jess
Vá para Definições de configuração de compilação, em Etapas de compilação, adicione uma etapa para o instalador NuGet como tipo de execução. altere o "Modo de atualização" da etapa de compilação do Nuget Installer do arquivo de solução para packages.config e NuGet.exe para a versão mais recente
szc0025
2
  1. Acesse o link https://www.nuget.org/packages/ClosedXML/0.64.0
  2. Pesquise seus pacotes NuGet
  3. Veja todas as versões dos pacotes relacionados
  4. Instale a versão inferior dos pacotes
Rahul
fonte
Esta é, na verdade, uma boa solução caso sua versão do Visual Studio seja muito baixa. No meu caso, tenho que trabalhar com o VS2012, que não oferece suporte à versão mais recente do NuGet. Isso significa automaticamente que nem sempre posso baixar os pacotes mais recentes por meio da janela Gerenciar pacotes NuGet.
Mixxiphoid de
1

No meu caso, tive que deletar o arquivo NuGet.exe na pasta Project /.nuget e reconstruir o projeto.

Também tenho em NuGet.targets o DownloadNuGetExe marcado como verdadeiro:

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

Espero que ajude.

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

A única solução que funcionou para mim foi desinstalar o nuget completamente do Visual Studio 2013 e, em seguida, instalá-lo novamente com a reinicialização obrigatória do VS no meio.

user7013486
fonte
0
  1. Vá para Ferramentas.
  2. Extensões e atualizações.
  3. Atualize o Nuget e qualquer outro recurso importante.
  4. Reiniciar.

Feito.

Anshul Rawat
fonte
0

Em um projeto usando vs 2010, só consegui resolver o problema instalando uma versão mais antiga do pacote que eu precisava por meio do Console do gerenciador de pacotes.

Este comando funcionou:

PM> Install-Package EPPlus -Version 4.5.3.1

Este comando não funcionou:

PM> Install-Package EPPlus -Version 4.5.3.2
Genivan
fonte