L'ouverture du projet dans Visual Studio échoue en raison d'une erreur nuget.targets not found

105

J'ai donc téléchargé Twitterizer depuis http://www.twitterizer.net/downloads/

J'essaye de l'ouvrir dans Visual Studio et j'obtiens toutes ces erreurs 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.

Que se passe-t-il. Comment gérer cela?

Barka
la source
5
Juste une note au cas où quelqu'un d'autre se heurterait à cela. Nuget 2.7 a introduit un nouveau type de restauration de paquet. Si vous essayez d'ajouter un projet utilisant l'ancien style à une solution utilisant le nouveau style, vous obtiendrez la même erreur. La façon de résoudre ce problème est de migrer le projet vers le nouveau style: docs.nuget.org/docs/workflows/…
Slapout

Réponses:

171
  1. Installez Nuget.
  2. Cliquez avec le bouton droit sur la solution et sélectionnez «Activer la restauration du package NuGet». Dans Visual Studio 2013 et versions ultérieures, sélectionnez plutôt «Restaurer les packages NuGet».
  3. Cliquez sur Ok sur l'avertissement.
  4. Fermez et rouvrez la solution.

Devrait maintenant être hunky-dory.

Frank Hagenson
la source
2
Merci pour cela, ce serait bien s'ils donnaient un message d'erreur plus utile dans VS pour cela.
rossisdead
2
J'obtiens toujours cette erreur même si cela ne s'applique plus à nuget 2.7
thepaulpage
Vous devez faire la solution de contournement @Slapout mentionne (commentaire sur la question d'origine)
JasonS
Ne fonctionne toujours pas ici, il dit qu'il n'y a plus de dépendances à restaurer. J'ai déjà supprimé le dossier du package et le restaurer plusieurs fois :(
rodrigorf
23

Une alternative est de modifier le fichier .csproj avec un éditeur de texte et de supprimer ou de commenter le segment.

MeanGreen
la source
4
Pour développer ce cas, si vous déplacez un projet d'une solution avec un fichier .nuget \ nuget.targets explicite vers un nouveau, vous verrez ce problème (même après la restauration des packages NuGet.) Dans ce cas, créez le nuget .targets ou modifiez le fichier de projet manuellement.
ThisGuy
J'ai également appliqué cette solution car mon projet n'utilisait aucun des packages NuGet et VS semble avoir généré automatiquement ces éléments. Merci le ciel pour le contrôle de version qui a permis de supprimer les lignes ajoutées de .csproj.
Ivan G
Quel segment faut-il supprimer?
Zapnologica
18

Cette erreur se produit normalement lorsque vous essayez d'ouvrir un .csprojdirectement, pas via le fichier de solution, et que vous .csprojimportez les cibles Nuget comme ceci:

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

Pour le résoudre, vous pouvez soit ouvrir le .slnet non .csprojdirectement ... soit supprimer la importligne ci-dessus.

Notez que l'erreur mentionnée ne se produira que lorsque vous utilisez la solution wiserestauration de package, ce qui n'est même plus recommandé.

André Pena
la source
2
C'est le problème que j'ai eu.
sparkyShorts
1
suppression de "la ligne d'importation ci-dessus." a fait l'affaire pour moi. Merci!!
Bart
5

Je viens de rencontrer le même problème, mais dans mon cas, le problème était un espace dans le nom du dossier:

Nuget me disait qu'il ne pouvait pas trouver "C: \ git \ My Path" mais j'ai pu accéder à "C: \ git \ My% 20Path". La suppression de l'espace dans le nom de dossier a "corrigé" le problème.

Joe Zack
la source
C'était exactement mon problème - merci beaucoup!
D.Nielsen
2

Je sais que je suis en retard à la fête, mais voici un très bon tutoriel sur la façon de résoudre ce problème. Je l'ai utilisé pour corriger mon projet.

Fermez Visual Studio Si la solution que vous essayez de migrer est ouverte dans Visual Studio, les modifications peuvent être perdues. Visual Studio peut remplacer / ignorer vos modifications dans certains cas et l'extension NuGet essaiera également de réactiver la restauration de package lorsqu'elle verra que certains projets de la solution le manquent.

Si vous utilisez TFS Supprimez les fichiers NuGet.exe et NuGet.targets du dossier .nuget de la solution. Assurez-vous que les fichiers eux-mêmes sont également supprimés de l'espace de travail de la solution. Conservez le fichier NuGet.Config pour continuer à contourner l'ajout de packages au contrôle de code source. Modifiez chaque fichier de projet (par exemple, .csproj, .vbproj) dans la solution et supprimez toutes les références au fichier NuGet.targets. Ouvrez le (s) fichier (s) projet dans l'éditeur de votre choix et supprimez les paramètres suivants:

vrai ... ...

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

leur. Pour plus d’informations, voir http://go.microsoft.com/fwlink/?LinkID=322105 . Le fichier manquant est {0}. Si vous n'utilisez pas TFS Supprimez le dossier .nuget de votre solution. Assurez-vous que le dossier lui-même est également supprimé de l'espace de travail de la solution. Modifiez chaque fichier de projet (par exemple, .csproj, .vbproj) dans la solution et supprimez toutes les références au fichier NuGet.targets. Ouvrez le (s) fichier (s) projet dans l'éditeur de votre choix et supprimez les paramètres suivants:

vrai ... ...

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

leur. Pour plus d’informations, voir http://go.microsoft.com/fwlink/?LinkID=322105 . Le fichier manquant est {0}. Script de migration De nombreux utilisateurs ont demandé un outil de migration pour désactiver la restauration de package basée sur MSBuild et la convertir en restauration automatique de package. L'équipe NuGet a décidé de ne pas fournir d'outil pris en charge pour cela en raison de la forte probabilité de cas extrêmes qui ne seraient pas gérés. Cependant, Owen Johnson a écrit un script PowerShell qui peut fonctionner dans de nombreux cas. Il est disponible sur GitHub et peut être utilisé à vos propres risques. En d'autres termes, assurez-vous de vous engager dans le contrôle de code source avant de l'exécuter, au cas où cela ne fonctionnerait pas dans votre scénario.

Correction de Nuget.target

JEuvin
la source
1

Lorsque j'obtiens l' nuget.targets not founderreur, j'utilise le gestionnaire uninstall-packagede packages sur l'un des packages du projet, puis je le réinstalle en utilisant install-package. Il semble qu'il régénère alors le fichier nugets.target.

Michée
la source
1

La solution la plus simple lorsque vous obtenez cette erreur afin de restaurer les éléments manquants NuGet.targetsdans l'Explorateur de solutions Visual Studio consiste à:

  1. Faites un clic droit sur le fichier de solution
  2. Dans le menu contextuel, cliquez sur l' option " Activer la restauration du package Nuget ..."

cela téléchargera les fichiers manquants dans le .nugetdossier " " :)

Ce qui précède suppose que vous avez déjà installé Nuget - sinon suivez la réponse acceptée ci-dessus!

MISE À JOUR: Veuillez noter que pour les versions de Visual Studio au-delà de 2013, l'option est appelée « Restaurer les packages NuGet »

Emil
la source
1
Je n'ai pas l'option de restauration de package enable nuget. J'ai juste restore nuget packages.
Zapnologica
Mise à jour de la réponse - c'est le nouveau nom de l'option de menu après VS2013
Emil