web-dev-qa-db-ja.com

UWPでの.NET Standard 2.1の使用

今日、いくつかのNuGetライブラリを更新するという大きな間違いを犯しました。 1週間分の作業をロールバックするか、ASP。NET Core 3.0にアップグレードする必要がありました。本番環境以外のものを使用するのは嫌いですが、ライブラリのもつれを解きたくありませんでした。アップグレードした後、.NET Standard 2.1ライブラリのターゲットを変更する必要がありました。これを実行しました。ここでの問題は、クライアントUWPコードにあります。コンパイルしようとすると、次のようになります。

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

これは、新しいUWPおよび.NET Standard 2.1ライブラリでも発生します。 Visual Studio 2019クライアントコードを最新のアップグレードで機能させる手がかりはありますか?

10
Quarkly

現在、すべてのWindows 10 SDKは 。NET Standard 2.1 をサポートしていません。

Windows 10 19H219H1と同じSDK番号 を使用しているため、.NET Standard 2.1をサポートすることはほとんどありません。 (しかし、私は確かにそうなることを願っています。)

マイクロソフトは公式発表をしていませんが、Windows 10 20H1は 意味のあるSDKアップデート を取得しているため、サポートされる可能性があります。そして、それが当てはまると、UWPアプリの実行には20H1が必要になります(そのため、サポートされる最小バージョンになります)。

この状況の大きな問題の1つは Entity Framework Core 3.0には.NET Standard 2.1が必要 であるため、現時点ではUWPアプリでは使用できません(更新:この問題はEntity Framework Coreで解決されます) 3.1は.NET Standard 2.0をサポートしています)。

ちなみに、実験として、Entity Framework Core 3.0(SQLite用)をフォークして、.NET Standard 2.0でコンパイルすることができました。基本的に、.NET Core 3.0(IAsyncXXXなど)からいくつかの新しいAPIを手動でコピーする必要がありました。そしてそれは機能したので、それは本当にそれを必要とする人々のためのオプションです。 SQL Serverプロバイダーでは試していないことに注意してください。

更新:WPチームが.NET 5を使用できるようにUWPアプリを有効にすることを計画しています そして、それはUWPが.NET標準をサポートするときです2.1(およびそれ以上)。これは20H2または21H1で発生する可能性があります。

9
user12115040

UWPは 。Net standard 2.1 をまだサポートしていません。 。Net standard 2. までしかサポートされておらず、Windows 1709以降でもサポートされます。

2.1のリンクを見ると、

プラットフォームサポート

  • 次期バージョンのユニバーサルWindowsプラットフォーム

19H2かもしれません

[〜#〜]更新[〜#〜]

マイクロソフトは WinUI と呼ばれる新しいフレームワークをリリースする予定です。これは、UWPおよびWin32ベースのアプリケーションモデルをサポートする予定です。 WinUI 3は、両方のプラットフォームで.Net 5をサポートします。 WinUI 3プレビューは2020年5月中旬に利用可能になる予定で、最終リリースは2020年後半に予定されています。WinUI3はWindows 10 1803以降でサポートされます。

5
resp78