web-dev-qa-db-fra.com

nuget ne reconnaît pas les paquets installés

J'ai un projet C # sur Git qui utilise les bibliothèques de NuGet. Tout fonctionne bien, mais lorsque j'utilise une nouvelle machine et que j'ouvre la solution dans Visual Studio, celle-ci ne se compile pas à cause de références cassées. Si je clique sur les références du projet, je peux voir le panneau d'avertissement classique avec le point d'exclamation jaune.

La restauration par Nuget ne fera rien (et je n'ai toujours pas trouvé d'utilisation de cette fonctionnalité ...), les fichiers repositories.config sont corrects. Si je clique avec le bouton droit sur la solution, puis sur «Gérer les packages NuGet pour la solution», aucun package installé ne s'affiche.

À ce jour, je l'ai résolu de cette façon:

Install-Package package_name

ça dit:

'package_name' already installed.
My_project already has a reference to 'package_name'.

... et après cela, les packages du gestionnaire, déjà affectés au bon projet, sont affichés.


RIEN N'A ÉTÉ MODIFIÉ DANS LE code PARTOUT , je peux le voir car il n'y a pas de différences sur Git.

Je ne dois le faire qu'une fois sur de nouvelles machines, mais c'est vraiment ennuyeux. Une idée?


Version de NuGet: 2.8.60318.667


UPDATE27/07

J'ai essayé la procédure à partir de zéro sur un autre PC, sous Windows 10, et tout fonctionne ... même version de Visual Studio, NuGet, etc.

5
SOROMEED

Cela est probablement dû au chemin incorrect du fichier .dll dans votre fichier .csproj. La restauration de package télécharge les packages dans le répertoire local. Cela ne change pas le chemin de référence de l'assembly dans le fichier .csproj, ce qui signifie que le projet tentera toujours de localiser les dll sur le répertoire local. La marque jaune signifie que le projet est incapable de localiser l’Assemblée.

Déchargez le projet, cliquez avec le bouton droit sur le projet et sélectionnez "Modifier le fichier .csproj", puis vérifiez le chemin des DLL manquantes. Par exemple - Si vous avez NUnit,

<Reference Include="nunit.framework">
      <HintPath>..\packages\NUnit.3.6.1\lib\net45\nunit.framework.dll</HintPath>
</Reference>

vérifiez si la dll est présente dans le répertoire "\ packages\NUnit.3.6.1\lib\net45".

6
Naman

De mémoire, je peux penser à quelques-unes des raisons pour lesquelles les packages ne sont pas téléchargés. Idéalement, vous devriez partager quelques détails supplémentaires.

Tout d'abord, la commande install-package ne fonctionnera pas. Vos packages sont déjà installés, mais VS ne parvient pas à les télécharger. Il est donc logique que vous obteniez cette erreur. 

  • Avant tout, s'agit-il d'un paquet public hébergé sur nuget.org tel que System.MVC.Web? Parce que s’il s’agit d’un nouvel ordinateur utilisant un serveur de pépites privé, vous devez configurer cette source dans Outils> Options> Gestionnaire de paquets Nuget> Sources du paquet. (Voir https://docs.Microsoft.com/en-us/nuget/tools/package-manager-ui pour plus de détails.)
  • Vérifiez si vous avez ajouté les dossiers à votre dépôt Git mais en même temps Time définit l’exclusion pour son contenu. Pour vérifier que lorsque vous effectuez une extraction Clean, voyez si les dossiers existent mais sont vides. Si c'est lacase qui supprime simplement les dossiers, le git ignore doit faire son travail depuisnow, et tout nouveau clone effectuera la vérification appropriée.
  • Si les deux précédents sont les plus susceptibles d’être la raison, cela ne fonctionnera pas. Essayez de restaurer les packages à partir de la console du gestionnaire de packages et mettez à jour votre publication avec les détails.

Vous pouvez ouvrir la console du gestionnaire de packages et taper:

Update-Package -reinstall

ou 

Update-Package -reinstall -Project YourProjectName

Pour info, il existe un document complet de Microsoft - https://docs.Microsoft.com/en-us/nuget/consume-packages/package-restore - sur les multiples façons de restaurer des paquets de nuget

2
rjso

J'ai résolu ce problème. Suivez ces étapes

  1. Dans Visual Studio, cliquez sur Outils > Extension et mises à jour .
  2. Naviguez vers En ligne , recherchez " NuGet Package Manager for VisualStudio " et cliquez sur Mettre à jour .
  3. (S'il n'y a pas de bouton Update , naviguez vers Updates > VisualStudio Gallery , recherchez le "NuGet Package Manager for VisualStudio" et cliquez sur Update .)
  4. Puis redémarrez Visual Studio.
1
Kemal Güler

essayez de supprimer votre paquet du dossier cache du nuget ci-dessous afin que NUGET soit obligé de télécharger depuis la source

C:\Utilisateurs\<< votre nom d'utilisateur >> \. Nuget\packages

0
gargmanoj