Fiz o check-in de um projeto em um computador, o check-out em outro e descobri que os binários instalados pelo NuGet estão ausentes. Eu poderia fazer check-los também no controle de origem, mas parece que há uma solução melhor:
http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages
Eu segui essas instruções, agora tenho uma .nuget
pasta onde deveria estar e tenho as seguintes entradas no meu arquivo .csproj:
<RestorePackages>true</RestorePackages>
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
e ainda assim, quando reconstruo minha solução, os pacotes ausentes não são restaurados.
o que estou perdendo? Como posso diagnosticar esse problema?
Respostas:
Observe que você pode forçar a restauração do pacote para executar executando os seguintes comandos no console do gerenciador de pacotes nuget
Força a reinstalação de tudo na solução.
Força a reinstalação de tudo no projeto myProj.
Nota : Esta é a opção nuclear. Ao usar este comando, você pode não obter as mesmas versões dos pacotes que você instalou e isso pode levar a problemas. É menos provável que isso ocorra no nível do projeto, em oposição ao nível da solução.
Você pode usar a
-safe
opção de parâmetro de linha de comando para restringir atualizações para versões mais recentes com o mesmo componente de versão principal e secundária. Esta opção foi adicionada mais tarde e resolve alguns dos problemas mencionados nos comentários.fonte
Para outras pessoas que se deparam com este post, leia isto.
O NuGet 2.7+ nos apresentou a Restauração automática de pacotes . Essa é uma abordagem muito melhor para a maioria dos aplicativos, pois não adultera o processo do MSBuild. Menos dores de cabeça.
Alguns links para você começar:
fonte
Você precisa escolher uma das seguintes maneiras:
Reinstalar um pacote por seu nome em todos os projetos da solução:
Reinstalando um pacote por seu nome e ignorando suas dependências em todos os projetos da solução:
Reinstalando um pacote por seu nome em um projeto:
Reinstalando todos os pacotes em um projeto específico:
Reinstalando todos os pacotes em uma solução:
fonte
Você ativou o modo de restauração de pacotes no projeto que possui os pacotes / binários ausentes? Há um problema conhecido que requer que os pacotes sejam instalados corretamente ao ativar o modo de restauração:
http://nuget.codeplex.com/workitem/1879
O link original está morto; isso pode ser um substituto: https://github.com/NuGet/Home/issues/1968
fonte
VS 2017
Ferramentas> Gerenciador de Pacotes NuGet> Configurações do Gerenciador de Pacotes> Geral Clique em "Limpar todos os cache do NuGet"
fonte
Eu encontrei esse problema em dois cenários.
Primeiro, quando tento criar minha solução na linha de comando usando o msbuild.exe. Em segundo lugar, quando tento criar o sln e os projetos que contêm no meu servidor de build usando TFS e CI.
Eu recebo erros alegando que faltam referências. Ao inspecionar o meu diretório de compilação local e o do servidor TFS, vejo que a pasta / packages não é criada e os pacotes de nuget não são copiados. Seguir as instruções listadas na resposta de Alexandre http://nuget.codeplex.com/workitem/1879 também não funcionou para mim.
Ativei o Restore Packages via VS2010 e vi as compilações funcionarem somente no VS2010. Minha solução alternativa é provavelmente totalmente inválida, mas, para o meu ambiente, tudo funcionou a partir de uma construção de linha de comando localmente, bem como de uma construção de IC no TFS.
Entrei em. \ Nuget e alterei esta linha no arquivo .nuget \ NuGet.targets:
de:
para: (observe, sem as aspas ao redor das variáveis)
Entendo que se meus diretórios tiverem espaços neles, isso falhará, mas não tenho espaços nos diretórios e, portanto, essa solução alternativa fez com que minhas compilações fossem concluídas com êxito ... por enquanto.
Eu direi que ativar o log de nível de diagnóstico em sua compilação ajudará a mostrar quais comandos estão sendo executados pelo msbuild. Foi isso que me levou a invadir temporariamente o arquivo de destinos.
fonte
Se alguma outra coisa não funcionar, tente:
Trabalhou para mim e é fácil tentar.
fonte
Se nenhuma das outras respostas funcionar para você, tente o seguinte, que foi a única coisa que funcionou para mim:
Encontre seu
.csproj
arquivo e edite-o em um editor de texto.Encontre a
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
tag no seu.csproj
arquivo e exclua todo o bloco.Reinstale todos os pacotes na solução:
Depois disso, seus pacotes de nuget devem ser restaurados, acho que esse pode ser um caso que ocorre apenas quando você move seu projeto para um local diferente.
fonte
Apenas para outras pessoas que podem ter esse problema, consegui resolver o problema fechando o Visual Studio e reabrindo o projeto. Quando o projeto foi carregado, os pacotes foram restaurados durante a fase de inicialização.
fonte
Para mim, eu tinha uma tag vazia NuGetPackageImportStamp em .csproj
Idealmente, deve conter algum GUID válido.
Remover a tag acima mencionada e "Restaurar pepitas" funcionou para mim.
fonte
Às vezes, algo estranho acontece e o uso do Visual Studio para restaurar automaticamente não funciona. Nesse caso, você pode usar o Console do NuGet Package Manager. Isso é aberto no Visual Studio em Ferramentas -> Gerenciador de Pacotes NuGet -> Console do Gerenciador de Pacotes . Os comandos no console são simples. E para obter ajuda de contexto ao digitar um comando, basta pressionar o botão e ele fornecerá todas as opções que começam com as letras que você está digitando. Portanto, se um pacote não estiver instalado, por exemplo log4net, digite o seguinte comando:
Pacote de instalação log4net
Você pode fazer muito mais, como especificar a versão para instalar, atualizar um pacote, desinstalar um pacote etc.
Eu tive que usar o console para me ajudar quando o Visual Studio estava agindo como uma esquisita.
fonte
A Restauração automática de pacotes falhará por um dos seguintes motivos:
O artigo a seguir descreve mais detalhadamente como executar os pontos 1-3: https://docs.nuget.org/consume/package-restore/migrating-to-automatic-package-restore
fonte
Eu tive os pacotes do NuGet quebrando depois que fiz uma Restauração do Sistema no meu sistema, fazendo o backup cerca de dois dias. (Os pacotes do NuGet foram instalados nesse meio tempo.) Para corrigi-lo, tive que ir para a pasta .nuget \ packages no meu perfil de usuário, encontrar os pacotes e excluí-los. Somente então o Visual Studio puxaria os pacotes para baixo e os adicionaria corretamente como referências.
fonte
A melhor solução alternativa que encontrei ao criar um novo projeto do zero e depois importe todos os arquivos de origem com o código. Meu projeto não era tão complicado, então não tive nenhum problema a partir daí.
fonte
Nenhuma das outras soluções funcionou na minha situação:
As dependências do AspNetCore foram instaladas / desinstaladas e estavam sendo armazenadas em cache. 'AspNetCore.All' se recusaria a atualizar / reinstalar / remover corretamente. E, independentemente do que eu fiz, ele usaria as dependências em cache (com as quais não era compatível), porque eram uma versão superior.
PackageReference
bin
,obj
Tools > Nuget Package Manager > Package Manager Settings
eClear all Nuget caches
. Verifique o console, pois pode falhar na remoção de alguns itens - copie o caminho da pasta e saia do visual studio.Se isso ainda não funcionar, repita, mas também procure sua unidade no Windows Explorer
nuget
e exclua tudo que estiver em cache.fonte
vs2015 nenhum problema de restauração de nuget de ativação. Minha solução:
adicione a pasta .nuget, adicione o arquivo NuGet.Config e NuGet.targets no diretório .nuget
cada arquivo de projeto inclui: build
fonte
Se o erro que você está enfrentando for "incapaz de conectar-se ao servidor remoto" como foi o meu, será benéfico que você faça essa verificação, além das verificações fornecidas nos comentários acima.
Vi que havia duas fontes de pacotes NUGET das quais os pacotes podiam ser baixados (em Ferramentas-> Gerenciador de Pacotes Nuget-> Configurações do Gerenciador de Pacotes). Uma das fontes do pacote não estava funcionando e o Nuget estava tentando fazer o download apenas dessa fonte.
As coisas se encaixaram quando eu mudei a fonte do pacote para fazer o download em: https://www.nuget.org/api/v2/ EXPLICITAMENTE nas configurações
fonte
No meu caso, uma tentativa de restauração do Nuget interrompida havia corrompido um dos
packages.config
arquivos da solução. Eu não descobri isso antes de verificar minha árvore de trabalho do git. Após reverter as alterações no arquivo, a restauração do Nuget estava funcionando novamente.fonte
Há um atalho para fazer a restauração do Nuget funcionar: 1. Verifique se a conexão com a Internet ou os URLs do Nuget são adequados no menu de opções do VS Tools 2. Observe a pasta .nuget ou nuget na solução; caso contrário, copie de qualquer um para obter o nuget.exe
EXCLUIR pastas de pacotes, se existir
Abra o console do gerenciador de pacotes, execute este comando
fonte
No VS2017, clique com o botão direito do mouse na solução => Abrir CommandLine => Linha de Comando do Desenvolvedor.
Quando estiver aberto, digite (e pressione enter depois)
Isso restaurará todos / todos os pacotes e você obterá uma boa saída do console do que foi feito ...
fonte