83 votes

Visual Studio 2017 ne peut pas mettre à jour le package Microsoft.NETCore.App ("Bloqué par projet")

J'ai un dotnet core application qui est le ciblage de Microsoft.NETCore.App 1.1.2. J'ai créé un projet de test pour tester contre ce projet, mais lors de la construction, j'ai remarqué cet avertissement: enter image description here

J'ai ouvert le Gestionnaire de Package NuGet et de voir que l'avertissement est correct, le projet a testé a une autre version de Microsoft.NETCore.App: enter image description here enter image description here

Mon problème est que Visual Studio n'est pas me permettre de mettre à jour cette version, donc je suis confus sur la façon de résoudre ce problème: enter image description here Idéalement, j'aimerais juste cliquez sur la liste déroulante et sélectionnez la bonne version, mais Visual Studio prétend qu'il ne peut pas le faire en raison de "contraintes supplémentaires dans le projet ou de paquets.config". Comment suis-je censé mettre à jour ce paquet? Ce que "des contraintes supplémentaires", Visual Studio référence?

51voto

Martin Ullrich Points 5894

EDIT 2018: suffit de suivre les instructions pour mettre à jour le paquet si vous savez vraiment ce que vous faites. Dans la plupart des cas, vous n'avez jamais besoin de mettre à jour ce paquet - ou d'autres paquets marqués comme "bloqué par projet" - manuellement. Un cadre-dépendante de l'application va utiliser la dernière exécution disponible et autonome de l'application va effectuer un supplément de construire à l'aide d'une version plus récente de ce paquet automatiquement. (il y a certains cas où vous avez besoin de mettre à niveau ce paquet dans les projets de test. dans ce cas, ajoutez - <TargetLatestRuntimePatch>true</…> et voir ce Q&A pour les autres options)

L'implicite paquet de références que l' Microsoft.NET.Sdk déduit ne peut pas être mis à jour via NuGet.

Si vous avez migré de projet.json, le projet avec l' 1.1.0 de référence contient probablement d'

<RuntimeFrameworkVersion>1.1.0</RuntimeFrameworkVersion>

dans le csproj fichier ou un élément comme ceci (si vous avez utilisé le gestionnaire de paquets précédemment pour définir la version):

<PackageReference Update="Microsoft.NETCore.App" Version="1.1.0" />

Supprimer des entrées comme ci-dessus et tous les paquets de référence 1.1.2 (ou quel que soit le SDK installé considère être la dernière) automatiquement. Alernatively, définissez RuntimeFrameworkVersion dans tous les projets.

49voto

Marlon Dias Points 493

J'ai eu un problème similaire lors de la tentative d'installation du package Entityframework.Core dans une application Web .NET Core 2 Web. Pour résoudre le problème, j'ai forcé l'installation via 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.

19voto

gsharp Points 4704

Pour moi en ajoutant

 <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
 

a fait le tour

 <PropertyGroup>
  <TargetFramework>netcoreapp2.1</TargetFramework>
  <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
</PropertyGroup>
 

7voto

bugged87 Points 764

Réponse Courte

Ajouter explicite d'une version à l' Microsoft.AspNetCore.App package de référence dans votre .fichier csproj.

Réponse Longue

J'ai eu une nouvelle marque netcoreapp2.1 projet. Ce qui suit a été dans le .fichier csproj. Remarque il n'y a pas de version associé à l' Microsoft.AspNetCore.App package de référence.

<ItemGroup>
  ...
  <PackageReference Include="Microsoft.AspNetCore.App" />
  ...
</ItemGroup>

J'ai ajouté une référence explicite à l' Microsoft.Extensions.Logging.Abstractions paquet de résoudre une dépendance décalage (erreur de compilation). Micorsoft.AspNetCore.App voulais la version 2.1.0 de cette dépendance, mais d'un autre paquet voulais la version 2.1.1. Mon .fichier csproj maintenant ressemblait à ça.

<ItemGroup>
  ...
  <PackageReference Include="Microsoft.AspNetCore.App" />
  <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="2.1.1" />
  ...
</ItemGroup>

Cette réduction de l'erreur de génération d'un message d'avertissement à propos de Micorsoft.AspNetCore.App nécessitant la version 2.1.0 de l' Microsoft.Extensions.Logging.Abstractions package, mais la version 2.1.1, bien sûr, a été résolu.

Essayez de mettre à jour Micorsoft.AspNetCore.App à la version 2.1.1 de fixer l'avertissement a été bloqué par le Gestionnaire de Package, comme mentionné par l'OP.

J'ai mis à jour mon Micorsoft.AspNetCore.App package de référence explicitement d'utilisation version 2.1.1 de ce genre.

<ItemGroup>
  ...
  <PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />
  <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="2.1.1" />
  ...
</ItemGroup>

Cette correction de la génération d'avertissement et débloqué toutes les versions de l' Microsoft.AspNetCore.App dans le Gestionnaire de paquets. J'ai même été en mesure de supprimer la référence explicite à l' Microsoft.Extensions.Logging.Abstractions sans réintroduire l'erreur d'origine. Le final .csproj ressemblait à ça sans problèmes.

<ItemGroup>
  ...
  <PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />
  ...
</ItemGroup>

3voto

J'ai eu le même problème et je pense, le problème est sur le paquet.

 <PackageReference Include="Microsoft.AspNetCore.App" />
 

Le problème a été résolu après que j'ai spécifié la version exactement.

 <PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.0" />
 

Comme je le sais, cette erreur est survenue lorsque le numéro de version

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X