148 votes

Que signifient les triangles d'avertissement jaunes sur les dépendances dans Visual Studio 2017 ?

Je viens de convertir ma bibliothèque PCL en une nouvelle bibliothèque standard .Net et j'ai des triangles d'avertissement jaunes sur mes dépendances, comme indiqué ci-dessous :

enter image description here

Lors de la conversion, tous les paquets nuget ont été transférés, y compris les dépendances, afin de pouvoir les utiliser.

Comment puis-je savoir ce que représentent les triangles d'avertissement jaunes ?

EDIT

Journaux de construction :

Pour empêcher NuGet de restaurer les paquets pendant la construction, ouvrez la boîte de dialogue Options de Visual Studio. Studio Options, cliquez sur le nœud Package Manager et décochez la case Allow NuGet to download missing packages during build. NU1605 : Détection d'un downgrade de paquet : NUnit de 3.8.1 à 2.6.4. Référencez le paquet directement à partir du projet pour sélectionner une version différente.
MyProj.UI.Tests -> MyProj.Core.Tests -> NUnit (>= 3.8.1)
MyProj.UI.Tests -> NUnit (>= 2.6.4) NU1605 : Paquet détecté downgrade : NUnit de 3.8.1 à 2.6.4. Référencez le paquet directement du projet pour sélectionner une version différente. MonProj.UI.Tests.iOS -> MyProj.UI.Tests -> MyProj.Core.Tests -> NUnit (>= 3.8.1) MyProj.UI.Tests.iOS -> NUnit (>= 2.6.4) NU1605 : Paquet détecté downgrade : NUnit de 3.8.1 à 2.6.4. Référencez le paquet directement directement dans le projet pour sélectionner une autre version.
MyProj.UI.Tests.Android -> MyProj.UI.Tests -> MyProj.Core.Tests -> NUnit (>= 3.8.1) MyProj.UI.Tests.Android -> NUnit (>= 2.6.4)

0 votes

Survolez-les et vous serez informé. La plupart du temps, c'est parce qu'il ne peut pas les trouver/résoudre ou qu'il existe un conflit. Si vous regardez également dans la fenêtre d'erreur, elle tend à expliquer l'erreur dans la solution.

70 votes

@Nkosi en les survolant, je ne vois rien.

1 votes

Fenêtre "Check Errors" puis

124voto

Tim Tyler Points 150

Aussi banal que cela puisse paraître, essayez de reconstruire puis de redémarrer VS - et continuez votre journée :)

8 votes

Merci de me rappeler la solution classique "essayez de le redémarrer" :). J'ai passé la dernière heure à me demander pourquoi VS supprimait mes paquets lorsque je construisais ma solution. J'ai redémarré VS et tout a fonctionné comme prévu. /ugh

2 votes

Le classique "shut down" n'est pas toujours la solution à tous les maux du monde :/.

1 votes

Je viens de mettre à jour aujourd'hui mon Visual Studio 2019 avec la dernière version (16.5.1) pour être exact. Et le problème existe toujours mais cette solution fonctionne toujours :).

67voto

AlexandreG Points 149

Exécuter dotnet restore avant de faire des manipulations compliquées, vous allez obtenir beaucoup plus d'informations que dans la fenêtre d'erreur ou l'explorateur de solutions.

Vous pouvez exécuter cette commande dans la console du gestionnaire de paquets :

Outils > Gestionnaire de paquets NuGet > Console du gestionnaire de paquets

4 votes

Le fait de rouvrir la solution au lieu de redémarrer VS a également fonctionné pour moi.

1 votes

Pourquoi devrais-je faire la restauration de dotnet ? la construction ne doit-elle pas le faire ?

13voto

user1 Points 602

Dans le journal de bord de la construction, j'ai remarqué ceci :

C:\Program Fichiers \dotnet\sdk\2.0.2\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.DefaultItems.targets (199,5) : avertissement : Une PackageReference pour 'NETStandard.Library' a été incluse dans votre votre projet. Ce paquet est implicitement référencé par le SDK .NET. et vous n'avez généralement pas besoin de le référencer dans votre projet. Pour plus d'informations, consultez https://aka.ms/sdkimplicitrefs

J'ai donc désinstallé tous les paquets qui étaient répertoriés comme des dépendances pour l'interface utilisateur. .Net Standard nuget énumérés ici :

.NETStandard 1.1

  • Microsoft.NETCore.Platforms (>= 1.1.0)

  • System.Collections (>= 4.3.0)

  • System.Collections.Concurrent (>= 4.3.0)

  • System.Diagnostics.Debug (>=> 4.3.0)

  • System.Diagnostics.Tools (>= 4.3.0)

  • System.Diagnostics.Tracing (>= 4.3.0)

  • System.Globalization (>= 4.3.0)

  • System.IO (>= 4.3.0)

  • System.IO.Compression (>= 4.3.0)

  • System.Linq (>= 4.3.0)

  • System.Linq.Expressions (>= 4.3.0)

  • System.Net.Http (>= 4.3.2)

  • System.Net.Primitives (>= 4.3.0)

  • System.ObjectModel (>= 4.3.0)

  • System.Reflection (>= 4.3.0)

  • System.Reflection.Extensions (>= 4.3.0)

  • System.Reflection.Primitives (>= 4.3.0)

  • System.Resources.ResourceManager (>= 4.3.0)

  • System.Runtime (>= 4.3.0)

  • System.Runtime.Extensions (>= 4.3.0)

  • System.Runtime.InteropServices (>= 4.3.0)

  • System.Runtime.InteropServices.RuntimeInformation (>=> 4.3.0)

  • System.Runtime.Numerics (>= 4.3.0)

  • System.Text.Encoding (>= 4.3.0)

  • System.Text.Encoding.Extensions (>= 4.3.0)

  • System.Text.RegularExpressions (>= 4.3.0)

  • System.Threading (>= 4.3.0)

  • System.Threading.Tasks (>= 4.3.0)

  • System.Xml.ReaderWriter (>= 4.3.0)

  • System.Xml.XDocument (>= 4.3.0)

Et les avertissements jaunes ont disparu.

D'ici : https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-standard-2-0/

J'ai également constaté que vous pouvez utiliser la propriété NoWarn comme ci-dessous :

<ItemGroup>
  <PackageReference Include="Huitian.PowerCollections" Version="1.0.0" NoWarn="NU1701" />
</ItemGroup>

12voto

user2459714 Points 41

Le triangle jaune signifie que le ou les fichiers physiques du paquet ont disparu et ne sont plus disponibles sur le disque dur.

Cela se produit généralement lors de l'émission d'un get latest version sur le contrôle de la source dans TFS, surtout lorsque vous utilisez une nouvelle machine, et que vous voulez obtenir le code de votre projet depuis le serveur TFS.

Elle peut également être causée par low quality internet connection ce qui entraîne presque toujours une perte de données, ou des fichiers téléchargés corrompus.

enter image description here

Si le problème est dû au fait qu'il manque quelques paquets, vous pouvez modifier le fichier packages.config et supprimez ces paquets du fichier packages.config et réinstallez les paquets manquants via le gestionnaire de paquets nuget.

Mais si le problème est dû au fait qu'il manque plus de quelques paquets, la meilleure et la plus rapide façon que j'utilise pour récupérer les paquets manquants est la suivante :

  1. Ouverture d'une nouvelle instance de Visual Studio
  2. Créez une nouvelle solution de projet avec le même type de projet que celui avec les paquets manquants (exemple : ASP.Net MVC avec un compte d'utilisateur individuel).
  3. Mettez à jour les paquets du nouveau projet à la dernière version pour qu'ils correspondent aux versions des paquets de la solution du projet précédent.
  4. Ouvrez l'explorateur de fichiers et naviguez vers le dossier des paquets dans la nouvelle solution que vous avez créée.
  5. Copier tout le contenu du dossier Packages en sélectionnant tout, Note Ne copiez PAS le dossier Packages lui-même, mais uniquement son contenu.
  6. Collez cela dans votre solution précédente ( solution avec les paquets manquants), dans le fichier Packages avec écrasement des éléments existants.
  7. Allez dans votre dossier de paquets dans l'explorateur de solutions et développez-le, puis cliquez sur le bouton d'actualisation pour voir que beaucoup de paquets manquants sont maintenant affichés sans triangle jaune.
  8. Enfin, vous vous retrouverez avec quelques paquets manquants, qui ne sont pas inclus par défaut lorsque vous créez une nouvelle solution, vous devez les supprimer de votre fichier packages.config (le fichier que les gestionnaires de paquets nuget lisent pour déterminer les paquets installés, et les installer comme nouveaux en utilisant le gestionnaire de paquets nuget.

Note Les problèmes de ce type liés à l'absence de fichiers dans les projets sont toujours difficiles à résoudre et dépendent de l'expérience des développeurs, aussi ne vous attendez pas à une solution facile pour celui-ci.

En ce qui concerne la cause de l'erreur, Microsoft affirme qu'il s'agit d'un bogue, mais qu'il peut se produire sur n'importe quelle version de Visual Studio.

1 votes

En ce qui concerne les projets, le redémarrage de Visual Studio (2019) a semblé régler le problème pour moi.

0 votes

Il n'y a pas de packages.coinfig

0voto

Il peut y avoir un paquet qui peut empêcher tous les autres d'être chargés. Essayez de commenter les paquets du fichier .csproj un par un et trouvez celui qui pose problème pour réduire le problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X