J’ai une application de base dotnet qui cible Microsoft.NETCore.App 1.1.2. J’ai créé un projet de test pour tester ce projet, mais en construisant, j’ai remarqué cet avertissement:
J’ouvre le gestionnaire de paquets NuGet et constate que l’avertissement est correct, que le projet testé a une version différente de Microsoft.NETCore.App:
Mon problème est que Visual Studio ne me laisse pas mettre à jour cette version, alors je ne comprends pas comment résoudre ce problème: Idéalement, il suffit de cliquer sur le menu déroulant et de sélectionner la bonne version, mais Visual Studio affirme qu’il ne peut pas le faire en raison de «contraintes supplémentaires dans le projet ou dans packages.config». Comment suis-je censé mettre à jour ce paquet? Quelles sont les “contraintes supplémentaires” auxquelles Visual Studio fait référence?
Les références de package implicites que Microsoft.NET.Sdk
infère ne peuvent pas être mises à jour via NuGet.
Si vous avez migré depuis project.json, le projet avec la référence 1.1.0
contient probablement
1.1.0
dans le fichier csproj ou un élément comme celui-ci (si vous avez déjà utilisé le gestionnaire de paquets pour définir la version):
Supprimez les entrées comme ci-dessus et tous les paquets référenceront 1.1.2
(ou peu importe ce que le SDK installé considère être le dernier) automatiquement. Alernativement, définissez RuntimeFrameworkVersion
dans tous les projets.
J’ai eu le même problème en essayant d’installer le package Entityframework.Core dans une application Web .NET Core 2. Pour résoudre le problème, j’ai forcé l’installation via la console du gestionnaire de packages:
Install-Package Microsoft.NETCore.App -Version 2.0.5
(2.0.5 était la version la plus récente à l’époque)
J’espère que c’est utile. Paix.
Une autre solution possible. Dans le fichier csproj
, mettez à jour l’ csproj
cible avec la version que vous souhaitez mettre à niveau. Après avoir effectué le changement, comme indiqué ci-dessous, les packages peuvent être mis à niveau via le gestionnaire de packages NuGet.
Avant:
netcoreapp2.0
Après:
netcoreapp2.1
Réponse courte
Ajoutez une version explicite à la référence de package Microsoft.AspNetCore.App
dans votre fichier .csproj.
Longue réponse
J’ai eu un nouveau projet netcoreapp2.1. Ce qui suit était dans le fichier .csproj. Notez qu’aucune version n’a été associée à la référence de package Microsoft.AspNetCore.App
.
... ...
J’ai ajouté une référence explicite au package Microsoft.Extensions.Logging.Abstractions
pour résoudre une incompatibilité de dépendance (erreur de génération). Micorsoft.AspNetCore.App
voulait la version 2.1.0 de cette dépendance, mais un autre package voulait la version 2.1.1. Mon fichier .csproj ressemblait maintenant à ceci.
... ...
Cela a réduit l’erreur de génération à un avertissement sur Micorsoft.AspNetCore.App
nécessitant la version 2.1.0 du package Microsoft.Extensions.Logging.Abstractions
, mais la version 2.1.1 a bien sûr été résolue.
La tentative de mise à jour de Micorsoft.AspNetCore.App
vers la version 2.1.1 pour corriger l’avertissement a été bloquée par le gestionnaire de packages, comme indiqué par l’OP.
J’ai mis à jour ma référence de package Micorsoft.AspNetCore.App
pour utiliser explicitement la version 2.1.1 comme ceci.
... ...
Cela a corrigé l’avertissement de génération et débloqué toutes les versions de Microsoft.AspNetCore.App
dans le Gestionnaire de packages. J’ai même pu supprimer la référence explicite à Microsoft.Extensions.Logging.Abstractions
sans réintroduire l’erreur d’origine. Le .csproj final ressemblait à ceci sans problèmes.
... ...
Pour moi en ajoutant
true
fait le tour
netcoreapp2.1 false true
Je l’ai résolu simplement en cliquant avec le bouton droit de la souris sur Projet (ou ALT + Entrée) -> Propriétés -> Application -> Framework cible (choisissez Framework .NET (dans ce cas 1.1))