Je viens de convertir ma bibliothèque PCL en une nouvelle bibliothèque .Net Standard et j'ai des triangles d'avertissement jaunes sur mes dépendances illustrées ci-dessous:
Au cours de la conversion, tous les paquets de nugets ont été importés, y compris les dépendances, de sorte que le problème puisse être résolu.
Comment savoir ce que représentent les triangles d'avertissement jaunes?
MODIFIER
Construire des journaux:
Pour empêcher NuGet de restaurer des packages pendant la construction, ouvrez le fichier Visual Dans la boîte de dialogue Options Studio, cliquez sur le nœud Gestionnaire de packages et décochez la case 'Autoriser NuGet à télécharger les packages manquants lors de la construction.' NU1605: Déclassement de paquet détecté: NUnit de 3.8.1 à 2.6.4. Référence le package 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é déclassement: NUnit de 3.8.1 à 2.6.4. Référencez directement le package à partir du projet pour sélectionner une version différente. MyProj.UI.Tests.iOS -> MyProj.UI.Tests -> MyProj.Core.Tests -> NUnit (> 3.8.1) MyProj.UI.Tests.iOS -> NUnit (> = 2.6.4) NU1605: Package détecté déclassement: NUnit de 3.8.1 à 2.6.4. Référencez directement le package à partir du projet pour sélectionner une version différente.
MyProj.UI.Tests.Android -> MyProj.UI.Tests -> MyProj.Core.Tests -> NUnit (> = 3.8.1) MyProj.UI.Tests.Android -> NUnit (> = 2.6.4)
Dans le journal de construction, j'ai remarqué ceci:
C:\Programme Fichiers\dotnet\sdk\2.0.2\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.DefaultItems.targets (199,5): avertissement: Un PackageReference pour 'NETStandard.Library' était inclus dans votre projet. Ce package est implicitement référencé par le Kit de développement .NET SDK et vous n'avez généralement pas besoin de le référencer à partir de votre projet. Pour Pour plus d'informations, voir https://aka.ms/sdkimplicitrefs } _
Je suis donc allé désinstaller tous les paquets qui étaient répertoriés comme dépendances pour le .Net Standard
nuget énuméré 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)
Compression System.IO. (> = 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.
De là: 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>
exécutez dotnet restore
avant toute manipulation compliquée, vous obtiendrez 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 packages:
Outils> Gestionnaire de paquets NuGet> Console du gestionnaire de paquets
il suffit de télécharger et installer IIS Express
Le triangle jaune signifie que le ou les fichiers physiques du paquet ont disparu et ne sont plus disponibles sur le disque dur.
Si le problème manque à quelques packages, vous pouvez modifier le fichier packages.config
et supprimer ces packages du packages.config
, puis réinstaller les packages manquants via le gestionnaire de packages nuget.
Mais si le problème manque plus que quelques paquets, le moyen le plus rapide et le plus rapide que j'utilise pour récupérer les paquets manquants est le suivant:
Packages
en sélectionnant tout, Note NE copiez PAS le dossier Packages lui-même, mais uniquement le contenu du dossier.Packages
avec écrasement des éléments existants.Remarque De tels problèmes liés aux fichiers manquants dans les projets sont toujours difficiles à résoudre et dépendent de l'expérience du développeur. Ne vous attendez donc pas à une solution facile pour celui-ci.
Sur la cause de l'erreur, Microsoft dit que c'est un bogue, mais cela peut arriver sur n'importe quelle version de Visual Studio.