web-dev-qa-db-fra.com

Les paquets NuGet ne sont pas restaurés dans Visual Studio 2017

J'ai Asp.netCore solution qui fonctionnait bien sur Visual Studio 2015 et puis je suis passé à Visual Studio 2017. Maintenant, le problème est que dans Visual Studio 2017 sur chaque paquet de nuget, il y a un point d'exclamation jaune. Voici une solution que j'ai essayée jusqu'à présent.

J'utilise Visual Studio Version: 15.3.1

  • Exécuter en tant qu'administrateur et restaurer le package.
  • Clear All Nugget Cache(s) à partir de Tools > options > NuGet Package Manager > et à nouveau restaurer Nuget.

 You can see yellow mark on every nuget package

Remarque: j'ai cherché et trouvé la solution suivante et essayé mais je n'ai pas résolu mon problème.

Solution 1

4
Usman lqbal

J'ai trouvé la réponse sur un autre fil ici et le mérite en revient à @AxelWass bien qu'il ne l'ait pas spécifiquement ciblé, il résout ce problème de manière absolue. La réponse ci-dessus n'a pas.


J'ai eu le même problème et le résoudre en ouvrant le projet dans un éditeur de texte et en supprimant la section suivante:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
  <PropertyGroup>
     <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.Microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
   </PropertyGroup>
   <Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
   <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
</Target>

Une fois que cela est supprimé, cela résoudra ce problème cauchemardesque que VS2017 et PM ne semblent pas en mesure de résoudre. Moi aussi, je me suis heurté à ce problème plusieurs fois, en particulier lorsque je mélange plusieurs projets dans le même répertoire de solutions.

12
Dave Friedel

Comme indiqué dans Microsoft Installation et réinstallation de packages avec la restauration de package Documentation , vous devez Update-Package -reinstall:

Update-Package -reinstall -ProjectName <project> commande où est le nom du projet affecté tel qu'il apparaît dans Solution Explorer. UtilisezUpdate-Package -reinstallseul pour restaurer Tous les packages de la solution.

4
Jack Martin

Par défaut, la nouvelle installation de visual studio n'a pas configuré la source de package pour rechercher des packages en ligne. Cela a causé le problème.

J'ai trouvé la réponse avec un peu plus de travail d'un lien stackoverflow: https://stackoverflow.com/a/32360953/1503372 .

Cette réponse mentionne l'utilisation de " https://www.nuget.org/api/v2 " url pour restaurer les packages. Lorsque j'ai ouvert la console du gestionnaire de paquets dans Visual Studio 2017, j'ai découvert qu'il recherchait uniquement des paquets sur mon PC (recherche hors ligne). 

J'ai ensuite ajouté " https://www.nuget.org/api/v2 " url en tant que source pour la restauration de packages et cela a fonctionné.

Suivez les étapes ci-dessous pour ajouter une source de package.

  1. Faites un clic droit sur projet> Gérer le paquet Nuget et vous verrez "étiquette de source du paquet".

  2. Ajouter l'URL en surbrillance à la source du paquet.

  3. Sélectionnez "Tous" comme source de paquet.

Une fois que vous avez configuré votre visual studio pour rechercher des packages en ligne, tous vos packages seront restaurés.

0
Jackson

J'ai découvert une mauvaise configuration dans le nuget.config. Je ne sais pas pourquoi, dans ce fichier, il y a des exclusions pour mon projet actuel.

Vous pouvez voir votre configuration globale exécutant cette commande dans File Explorer

%AppData%\NuGet\NuGet.Config

0
Enrico