web-dev-qa-db-fra.com

VS 2017 15.3 Triangles jaunes sur les références

Ce matin, je suis passé à VS 2017 15.3 et je reçois maintenant des triangles jaunes pour la plupart de mes références. Le projet fonctionne correctement (la construction est bonne dans CLI et VS et la restauration a été exécutée plusieurs fois), ce que je peux dire (et même mieux avec dotnetcore 2.0), mais cela reste. Quelqu'un d'autre a-t-il eu cela ou une suggestion? Merci.

Lien vers le fichier project.assets.json -> https://www.dropbox.com/s/c85yuyjiu4pnget/project.assets?dl=0

 Yellow triangles in Solution Explorer

Également question d’utilisations grisées et de références rouges bien que tout soit construit et fonctionne bien. 

 enter image description here

 Warnings Window

21
dodegaard

Mise à jour: le compte Twitter de VisualStudio m'a répondu que c'était un bogue et qu'ils travaillaient sur un correctif pour l'avenir ....

J'ai deux réponses à mon message:

1) Le problème d'utilisation noté avec les éléments en gris était en fait un problème de ReSharper. Si vous effectuez une mise à niveau vers VS 2017 15.3 et utilisez R #, veillez également à l'actualiser jusqu'en 2017.2.

2) L'équipe de Visual Studio examine actuellement le problème des triangles jaunes, mais honnêtement, je pense qu'il est lié aux avertissements de la construction selon lesquels ces références sont forcées vers des dépendances inférieures (par exemple, Newtonsoft à différents niveaux) ou des aperçus. L’évolution rapide du monde .NET 2.0 a peut-être exacerbé ce problème. Les triangles jaunes signifiaient généralement de manquer, mais vérifiez vos avertissements pour voir si cela est lié, puis examinez la chaîne de dépendance. Je mettrai à jour cette réponse une fois que l'équipe de VS aura répondu (merci de leur dire à Damian Edwards + Scott Hanselman de m'avoir aidé sur Twitter).

7
dodegaard

Je rencontrais le problème du triangle jaune sur les références après la mise à jour des projets de ma solution (.NET 4.6.1) vers le nouveau format .NET Standard .csproj fourni avec VS2017. Les références pour lesquelles je recevais des avertissements étaient de type ProjectReference (même si elles semblaient déborder dans PackageReference pour les packages communs des projets en question).

Je n'ai eu aucun avertissement de construction et il n'y avait rien dans la sortie de construction verbeuse pour indiquer ce que la cause pourrait être.

Je pouvais suivre tous les avertissements pour un seul projet dans ma solution. J'ai pu résoudre ce problème en supprimant ce projet de ma solution, puis en le rajoutant et en ajoutant à nouveau uniquement les références de projet nécessaires.

Il semble que le problème soit lié à des références de projet inutiles (ou éventuellement circulaires) causées par le nouveau support des dépendances transitives. Après avoir supprimé le projet et l'avoir rajouté avec uniquement le nombre minimal ProjectReferences et en s'appuyant sur le support des dépendances transitives pour propager la dépendance, tous les avertissements ont disparu.

Cela a également résolu le problème suivant: le projet en question échouait à la compilation au cours d’une compilation lancée par la ligne de commande lancée par msbuild sur mon serveur CI, sur laquelle seuls les outils de génération VS2017 étaient installés (et non l’EDI complet).

4
Simon Fox

J'ai eu le même problème, certaines des références ont été marquées avec le triangle jaune. Cependant, j'ai pu construire et exécuter mon projet . J'ai réussi à supprimer ces avertissements en procédant comme suit: .Net 2015 Références avec un triangle jaune pour les paquets Nuget sur des bibliothèques portables

J'ai activé le traçage pour Visual Studio, j'avais ensuite des avertissements dans les fichiers journaux pour toutes les références incorrectement chargées:

Conflit rencontré entre 'Référence: Microsoft.Win32.Primitives, Version = 4.0.2.0, Culture = neutre, PublicKeyToken = b03f5f7f11d50a3a, processorArchitecture = MSIL' et 'Référence: C:\Fichiers de programme (x86)\Visual Studio\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\ref\Microsoft.Win32.Primitives.dll '. Choisir 'Référence: C:\Program Files (x86)\Visual Studio\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\ref\Microsoft.Win32.Primitives.dll' parce que AssemblyVersion '4.0.3.0' est supérieur à "4.0.2.0".

Pour être précis, j'ai fait les étapes suivantes:

  1. Suppression de la condition d'erreur de mon fichier .csproj
  2. Paramètre <Private>true</Private> supprimé pour les références non chargées dans le fichier .csproj
  3. Suppression des packages non chargés des dossiers \ lib et \ ref dans le dossier MSBuild correspondant.
  4. Les packages supprimés du dossier \ packages dans la solution.
  5. Paquets de nuget restaurés.

Je ne suis pas sûr que toutes ces étapes soient nécessaires, mais cela a fonctionné pour moi.

0
Lickut

La version du Kit de développement logiciel (SDK) Windows incompatible entre le projet de référencement et les références le provoquera. Dans le fichier vcxproj, il s'agit de "<WindowsTargetPlatformVersion> Version du SDK </ WindowsTargetPlatformVersion>"

Je passais de VS2012 à VS2017. Tout était bon, puis je suis passé à une nouvelle version de libtomcrypt et de libtommath. Plutôt que de modifier mes projets existants, j'ai converti à la hausse les projets des distributions de VS2008 -> VS2012 -> VS2017. Au cours de ce processus, j'ai récupéré Windows SDK Version 10.0.17763.0 dans les deux nouveaux projets. Cependant, tous les projets qui ont fait référence à ceux-ci étaient 8.1, et donc l'avertissement.

0
GTAE86

J'ai eu un problème similaire avec visual studio 2017. Et j'ai découvert que si je changeais les paramètres de dépendance du paquet que je voulais installer (de la dépendance la plus faible à la plus élevée), tout fonctionnerait correctement.

0
Jean Claude