A abertura do projeto no Visual Studio falha devido ao erro nuget.targets não encontrado

105

Então, baixei o Twitterizer de http://www.twitterizer.net/downloads/

Tento abri-lo no Visual Studio e recebo todos esses erros de nuget:

The imported project "C:\Twitterizer\.nuget\nuget.targets" was not found. 
Confirm that the path in the <Import> declaration is correct, and that the file 
exists on disk.

O que está acontecendo. Como faço para lidar com isso?

Barka
fonte
5
Apenas uma nota, caso mais alguém se depare com isso. O Nuget 2.7 introduziu um novo tipo de restauração de pacote. Se você tentar adicionar um projeto que usa o estilo antigo a uma solução que usa o novo estilo, receberá o mesmo erro. A maneira de corrigir isso é migrar o projeto para o novo estilo: docs.nuget.org/docs/workflows/…
Slapout

Respostas:

171
  1. Instale o Nuget.
  2. Clique com o botão direito na solução e selecione "Habilitar Restauração do Pacote NuGet". No Visual Studio 2013 e posterior, selecione "Restaurar pacotes NuGet".
  3. Clique em Ok no aviso.
  4. Feche e reabra a solução.

Agora deve estar ótimo.

Frank Hagenson
fonte
2
Obrigado por isso, seria bom se eles dessem uma mensagem de erro mais útil no VS para isso.
rossisdead
2
Ainda estou recebendo este erro, embora isso não se aplique mais ao nuget 2.7
thepaulpage de
Você precisa fazer a solução alternativa @Slapout menções (comentário sobre a pergunta original)
JasonS
Ainda não funcionando aqui, diz que não há mais dependências para restaurar. Já excluí a pasta do pacote e a restaurei algumas vezes :(
rodrigorf
23

Uma alternativa é editar o arquivo .csproj com um editor de texto e remover ou comentar o segmento.

MeanGreen
fonte
4
Para expandir este caso - se você mover um projeto de uma solução com um arquivo explícito .nuget \ nuget.targets para um novo, verá este problema (mesmo depois de restaurar os pacotes NuGet.) Neste caso, crie o nuget .targets ou editar o arquivo de projeto manualmente.
This Guy de
Eu também apliquei essa solução, pois meu projeto não usava pacotes NuGet e o VS parece ter gerado essas coisas automaticamente. Obrigado a Deus pelo controle de versão que tornou possível expulsar as linhas adicionadas de .csproj.
Ivan G
Qual segmento deve ser removido?
Zapnologica
18

Esse erro normalmente ocorre quando você tenta abrir um .csprojdiretamente, não por meio do arquivo de solução, e .csprojimporta os destinos Nuget como este:

<Import Project="$(SolutionDir)\.nuget\NuGet.targets" />

Para resolver, você pode abrir o .slne não o .csprojdiretamente ... ou remover a importlinha acima.

Observe que o erro mencionado só acontecerá quando você estiver usando a solution wiserestauração de pacote, que nem é mais recomendada.

André Pena
fonte
2
Esse é o problema que eu tive.
sparkyShorts
1
remoção da "linha de importação acima." fez o truque para mim. Obrigado!!
Bart
5

Acabei de encontrar o mesmo problema, mas no meu caso o problema era um espaço no nome da pasta:

Nuget estava me dizendo que não conseguia encontrar "C: \ git \ My Path", mas consegui navegar até "C: \ git \ My% 20Path". Remover o espaço no nome da pasta "corrigiu" o problema.

Joe Zack
fonte
Este foi exatamente o meu problema - muito obrigado!
D.Nielsen
2

Sei que estou atrasado para a festa, mas aqui está um tutorial muito bom sobre como corrigir esse problema. Usei isso para consertar meu projeto.

Feche o Visual Studio Se a solução que você está tentando migrar estiver aberta no Visual Studio, as alterações podem ser perdidas. O Visual Studio pode sobrescrever / ignorar suas alterações em alguns casos e a extensão NuGet também tentará reativar a Restauração de pacote quando perceber que alguns projetos na solução estão ausentes.

Se você estiver usando o TFS, remova os arquivos NuGet.exe e NuGet.targets da pasta .nuget da solução. Certifique-se de que os próprios arquivos também sejam removidos da área de trabalho da solução. Retenha o arquivo NuGet.Config para continuar a ignorar a adição de pacotes ao controle de origem. Edite cada arquivo de projeto (por exemplo, .csproj, .vbproj) na solução e remova todas as referências ao arquivo NuGet.targets. Abra o (s) arquivo (s) de projeto no editor de sua escolha e remova as seguintes configurações:

verdade ... ...

<PropertyGroup>
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download

eles. Para mais informações, veja http://go.microsoft.com/fwlink/?LinkID=322105 . O arquivo ausente é {0}. Se você não estiver usando o TFS, remova a pasta .nuget de sua solução. Certifique-se de que a própria pasta também seja removida da área de trabalho da solução. Edite cada arquivo de projeto (por exemplo, .csproj, .vbproj) na solução e remova todas as referências ao arquivo NuGet.targets. Abra o (s) arquivo (s) de projeto no editor de sua escolha e remova as seguintes configurações:

verdade ... ...

<PropertyGroup>
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download

eles. Para obter mais informações, consulte http://go.microsoft.com/fwlink/?LinkID=322105 . O arquivo ausente é {0}. Script de migração Muitos usuários solicitaram uma ferramenta de migração para desabilitar a restauração de pacote baseada em MSBuild e converter para restauração automática de pacote. A equipe do NuGet decidiu não fornecer uma ferramenta com suporte para isso devido à alta probabilidade de casos extremos que não seriam tratados. No entanto, Owen Johnson criou um script PowerShell que pode funcionar em muitos casos. Ele está disponível no GitHub e pode ser usado por sua própria conta e risco. Em outras palavras, certifique-se de se comprometer com o controle de origem antes de executá-lo, caso não funcione em seu cenário.

Nuget.target Fix

JEuvin
fonte
1

Quando recebo o nuget.targets not founderro, uso o gerenciador de pacotes para uninstall-packageum dos pacotes do projeto e reinstalo-o usando install-package. Parece que ele regenera o arquivo nugets.target então.

Micah
fonte
1

A solução mais fácil quando você receber esse erro para restaurar o que está faltando NuGet.targetsno Visual Studio Solution Explorer é:

  1. Clique com o botão direito no arquivo de solução
  2. No menu de contexto, clique na opção " Habilitar Restauração do Pacote Nuget ..."

isso fará o download dos arquivos ausentes na .nugetpasta " " :)

O acima pressupõe que você já tenha o Nuget instalado - se não, siga a resposta aceita acima!

ATUALIZAÇÃO: observe que, para as versões do Visual Studio posteriores a 2013, a opção é chamada de " Restaurar pacotes NuGet "

Emil
fonte
1
Não tenho a opção de restauração do pacote nuget para ativar. Eu apenas tenho restore nuget packages.
Zapnologica
Resposta atualizada - este é o novo nome da opção de menu após VS2013
Emil