Visual Studio 2017 ne peut pas mettre à jour Microsoft.NETCore.Paquet App ("bloqué par le projet")
j'ai une application dotnet core qui cible Microsoft.NETCore.App 1.1.2. J'ai créé un projet de test pour tester contre ce projet mais en construisant j'ai remarqué cet avertissement:
j'ouvre le Gestionnaire de paquets NuGet et je vois que l'avertissement est correct, 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, donc je suis confus sur la façon de résoudre ce problème: Idéalement, je devrais simplement cliquer sur la liste déroulante et 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 les paquets.config". Comment suis-je censé mettre à jour ce paquet? Quelles sont les "contraintes supplémentaires" de Visual Studio? ?
6 réponses
le paquet implicite mentionne que le Microsoft.NET.Sdk
ne peut pas être mis à jour via NuGet.
si vous avez migré du projet.json, le projet avec le 1.1.0
de référence contient probablement
<RuntimeFrameworkVersion>1.1.0</RuntimeFrameworkVersion>
dans le fichier csproj ou un article comme celui-ci (si vous pouvez utiliser le gestionnaire de paquets précédemment pour définir la version):
<PackageReference Update="Microsoft.NETCore.App" Version="1.1.0" />
supprimer les rubriques comme ci-dessus et tous les colis feront référence à 1.1.2
(ou ce que le SDK installé considère comme le dernier en date) automatiquement.
Alernatively, ensemble RuntimeFrameworkVersion
dans tous les projets.
j'ai eu le même problème en essayant d'installer Entitefram Framework.Paquet de base dans une application web.Net Core 2. Pour résoudre le problème, J'ai forcé l'installation par L'intermédiaire de la Console Package Manager:
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.
pour moi ajoutant
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
fait le tour
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
</PropertyGroup>
une autre solution possible. Dans le fichier csproj
, mettez à jour le framework cible vers la version que vous souhaitez mettre à niveau. Après avoir effectué le changement, comme indiqué ci-dessous, les paquets peuvent être mis à jour via la solution NuGet package manager.
avant:
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
après:
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
Courte Réponse
ajouter une version explicite à la référence de paquet Microsoft.AspNetCore.App
dans votre .fichier csproj.
Longue Réponse
j'avais un tout nouveau netcoreapp2.1 projet. Ce qui suit a été dans le .fichier csproj. Remarque Il n'y avait aucune version associée à la référence du paquet Microsoft.AspNetCore.App
.
<ItemGroup>
...
<PackageReference Include="Microsoft.AspNetCore.App" />
...
</ItemGroup>
j'ai ajouté un référence au paquet Microsoft.Extensions.Logging.Abstractions
pour résoudre une inadéquation de dépendance (erreur de compilation). Micorsoft.AspNetCore.App
voulait la version 2.1.0 de cette dépendance, mais un autre paquet voulait la version 2.1.1. Mon. le fichier csproj ressemblait maintenant à ceci.
<ItemGroup>
...
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="2.1.1" />
...
</ItemGroup>
cela a réduit l'erreur de construction à un avertissement sur Micorsoft.AspNetCore.App
nécessitant la version 2.1.0 du paquet Microsoft.Extensions.Logging.Abstractions
mais la version 2.1.1, bien sûr, a été résolue.
essayer de mettre à jour Micorsoft.AspNetCore.App
pour la version 2.1.1 pour corriger l'avertissement a été bloquée par le Gestionnaire de paquets comme indiqué par L'OP.
j'ai mis à jour ma référence de paquet Micorsoft.AspNetCore.App
pour utiliser explicitement la version 2.1.1 comme ceci.
<ItemGroup>
...
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="2.1.1" />
...
</ItemGroup>
cela a corrigé l'avertissement de construction et débloqué toutes les versions de Microsoft.AspNetCore.App
dans le Gestionnaire de paquets. J'ai même pu supprimer la référence explicite à Microsoft.Extensions.Logging.Abstractions
sans réintroduire l'erreur originale. Final. csproj ressemblait à ceci sans question.
<ItemGroup>
...
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />
...
</ItemGroup>
Je l'ai résolu par simple: Clic droit sur Project (ou ALT+ Enter) - > Properties - > Application - > Target Framework (choisir .net Core framework (dans ce cas 1.1))