web-dev-qa-db-fra.com

en utilisant .NET Standard 2.1 avec UWP

J'ai fait la grosse erreur en prenant des mises à jour de la bibliothèque NuGet aujourd'hui. Cela m'a obligé soit à annuler une semaine de travail, soit à passer à ASP .NET Core 3.0. Je déteste utiliser des choses qui ne sont pas de production, mais je ne voulais pas démêler les bibliothèques soit, j'ai donc mis à niveau. Ensuite, cela m'a obligé à recibler les bibliothèques .NET Standard 2.1. Ce que j'ai fait. Mon problème est maintenant avec le code UWP du client. Lorsque j'essaie de compiler, j'obtiens:

error : Project '..\ClassLibrary1\ClassLibrary1.csproj' targets 'netstandard2.1'. It cannot be referenced by a project that targets 'UAP,Version=v10.0.10586'.

Cela se produit même avec une bibliothèque UWP et .NET Standard 2.1 vierge. Des indices sur la façon de faire fonctionner le code client Visual Studio 2019 avec la dernière mise à niveau?

10
Quarkly

Tous les SDK Windows 10 ne prennent actuellement pas en charge . NET Standard 2.1 .

Windows 10 19H2 utilise le même numéro de SDK que 19H1 , il est donc peu probable qu'il prenne en charge .NET Standard 2.1. (Mais j'espère bien que oui.)

Microsoft n'a pas fait d'annonce officielle, mais Windows 10 20H1 reçoit un mise à jour significative du SDK , il est donc probable qu'il le prendra en charge. Et une fois que c'est le cas, les applications UWP auront besoin de 20H1 pour fonctionner (ce qui deviendra la version minimale prise en charge).

L'un des gros problèmes avec cette situation est que Entity Framework Core 3.0 nécessite .NET Standard 2.1 , il ne peut donc pas être utilisé dans les applications UWP pour le moment (mise à jour: ce problème est résolu avec Entity Framework Core 3.1 prenant en charge .NET Standard 2.0).

Soit dit en passant, à titre expérimental, j'ai été en mesure de bifurquer Entity Framework Core 3.0 (pour SQLite) et de le compiler sur .NET Standard 2.0. J'ai essentiellement dû copier manuellement quelques nouvelles API à partir de .NET Core 3.0 (comme IAsyncXXX). Et cela a fonctionné, c'est donc une option pour les personnes qui en ont vraiment besoin. Notez que je ne l'ai pas essayé avec le fournisseur SQL Server.

Mise à jour: L'équipe UWP prévoit d'activer les applications UWP pour utiliser .NET 5 et c'est à ce moment que UWP prendra en charge la norme .NET 2.1 (et plus). Cela pourrait arriver en 20H2 ou 21H1.

9
user12115040

UWP ne prend pas encore en charge . Net standard 2.1 . Il ne prend en charge que . Net standard 2. et cela aussi à partir de Windows 1709.

Si vous regardez le lien pour 2.1, il indique

Prise en charge de la plateforme

  • Une prochaine version Universal Windows Platform

il peut donc être 19H2

[~ # ~] mise à jour [~ # ~]

Microsoft va publier un nouveau framework appelé WinUI , cela va prendre en charge UWP ainsi que le modèle d'application basé sur Win32. WinUI 3 prendrait en charge .Net 5 pour les deux plates-formes. L'aperçu de WinUI 3 sera disponible à la mi-mai 2020, avec une version finale fin 2020. WinUI 3 serait pris en charge sur Windows 10 1803+.

5
resp78