Je mets à niveau une solution existante de .NET 4.6.2 vers .NET 4.7. Cette solution dépend de plusieurs packages de nuget qui ciblent .NET 4.6.2 et dépendent donc du package nuget System.ValueTuple .
Mais après la mise à niveau, je reçois un tas de ces erreurs de construction:
Error CS8179 Predefined type 'System.ValueTuple`2' is not defined or imported
Je ne peux pas supprimer le System.ValueTuple
package, comme suggéré dans les commentaires ici , car d'autres packages en dépendent. (Et si je le force, ils semblent exploser.)
Aucune suggestion?
Mise à jour 8/8/17
J'ai compris que je peux supprimer le System.ValueTuple
package, et je peux obtenir la solution pour compiler de cette façon. Cependant, j'ai une douzaine de packages NuGet dans la solution qui semblent cibler .NET 4.6.2 et nécessitent donc System.ValueTuple
comme dépendance. Je peux les installer, puis forcer la suppression du System.ValueTuple
package, mais si l'un de ces packages contient une mise à jour, et j'installe la mise à jour - alors le System.ValueTuple
le package est réinstallé et le système cesse de se construire jusqu'à ce que je retire le package.
En d'autres termes, je peux tout faire fonctionner - mais cela semble maladroit et maladroit. Il y a sûrement une meilleure façon d'aborder cela?
Dans Visual Studion, le package NuGet System.ValueTuple fournit les types ValueTuple. Mettez donc à jour System.ValueTuple vers la dernière version v4.4.0. Signifie Mettre à niveau System.ValueTuple vers une version supérieure à la version actuelle ou précédente.