4 votes

Projet Visual Studio 2017 faisant référence à une ancienne version de Microsoft.AspNetCore.App

J'utilisais .Net Core 2.1.1, et j'ai récemment mis à jour le SDK vers 2.1.401 (.Net Core Runtime 2.1.3). Lorsque je crée un nouveau projet, la version de Microsoft.AspNetCore.App sous Dependencies > SDK est toujours 2.1.1. En regardant les propriétés de Dependencies > NuGet, le paquet est référencé à partir de " C:\Program Fichiers \dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.app\2.1.1 "

J'ai essayé d'installer le paquet 2.1.3 en utilisant le gestionnaire de paquets NuGet, et il a téléchargé toutes les dépendances de NuGet malgré le fait que j'ai 2.1.3 déjà installé sur ma machine.

Comment puis-je forcer un projet existant ou nouveau à utiliser la dernière version des paquets de l'installation du SDK ?

0 votes

Vous avez raison ! Je l'ai vérifié et j'ai obtenu le même résultat. Il s'agit peut-être d'un bug. Veuillez le signaler ici : github.com/aspnet/Home/issues

0 votes

Merci pour votre suggestion, fyi voici le lien vers le problème que j'ai soulevé : github.com/dotnet/core/issues/1895

1voto

Martin Ullrich Points 5894

Vous ne devriez pas avoir besoin de mettre à jour la version de Microsoft.AspNetCore.App manuellement dans votre projet. La version 2.1.1 convient parfaitement. Votre application fonctionnera avec le dernier framework 2.1.* installé sur la machine.

Si vous publiez une application autonome, l'outil passera automatiquement à la dernière version connue de 2.1.* au moment de la construction pour la construction autonome uniquement. ( -r win-x64 argument)

Cela peut ou non changer pour les versions 2.2 ou 3.0, lisez et suivez les instructions. ce problème et ce fil de discussion GitHub pour plus d'informations.

0 votes

Merci d'avoir partagé le lien de discussion. Je reconnais que je peux travailler avec la version 2.1.1, mais ce que je n'arrive pas à comprendre, c'est pourquoi VS référence le package à partir du dossier NuGetFallBack et non à partir du SDK alors que j'ai explicitement spécifié la version du package. D'ailleurs, d'après la discussion, ce que j'ai compris, c'est que fournir la version explicite du package dans .csproj est la voie à suivre pour l'instant. Ai-je raison ?

0 votes

Pour l'instant, je pense qu'il est préférable de supprimer l'élément Version="" Il faut attendre la version 2.1 pour voir si des changements sont apportés dans la version 2.2 ou 3.0 (plus vraisemblablement dans la version 3.0).

0 votes

L'idée d'un "cadre partagé" est que le système d'exécution fournit la mise en œuvre, mais que vous ne compilez qu'en fonction du contrat. Le contrat ne devrait pas (ne doit pas) changer entre les versions des correctifs et votre application fonctionnera de toute façon sur le dernier correctif disponible. Ce n'est que pour les applications autonomes que la référence est importante (en plus des références de compilation, elle permet d'obtenir des implémentations), mais encore une fois, cela peut être géré via le SDK ("dernière version de correctif connue").

0voto

Il s'agit d'un bogue, car il a déjà été signalé, mais pour l'instant, cela peut être la solution.

Sur ProjectName.csproj fichier :

<PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <RuntimeFrameworkVersion>2.1.3</RuntimeFrameworkVersion>
</PropertyGroup>

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

0 votes

Pouvez-vous partager l'identifiant du problème, si vous l'avez avec vous ? Merci.

0 votes

En réglant RuntimeFrameworkVersion sur 2.1.3, Microsoft.NETCore.App a été mis à niveau vers 2.1.3 (lors du rechargement du projet). Mais Microsoft.AspNetCore.App reste en 2.1.1 et le fait de lui attribuer la valeur 2.1.3 dans le fichier de projet oblige NuGet à télécharger la version 2.1.3.

0 votes

@PraveenRai Laissez-moi vérifier !

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