聞いたことがあります
これらはすべて、「複数のプラットフォームをターゲットにできる完全な.Netのサブセット」として説明されました。だから私の質問は
(私の特定の状況:私は ライブラリ .Net 2.0、.Net 4.5、およびUWPをターゲットにしています。UWPをターゲットにするには、新しいVSプロジェクトを作成し、既存のすべてのファイルをリンクする必要がありました、それは大きな痛みです。今、誰かがそれがPCLのために働かないと私に言っており、その音から私は.Net標準のためにもう一度それをしなければなりません!?)
最初に2番目の質問に答えます。
.Net 2.0、.Net 4.5、およびUWPをターゲットとするライブラリがあります。 UWPをターゲットにするには、新しいVSプロジェクトを作成し、既存のすべてのファイルをリンクする必要がありましたが、これは大きな苦痛です。今、誰かがそれがPCLでは機能しないと私に言っています、そしてその音から私は.NET標準のためにもう一度それをしなければなりません!?)
できるだけ多くのユーザーに使用できるライブラリを作成したい場合、これらのどれを使用する必要がありますか?
短い答え:netstandard
をターゲットにする必要があります。必要なすべてのAPIが含まれる 最低バージョン を使用します。 API Port to 既存のプロジェクトで特定のnetstandard
バージョンとの互換性を確認する などのツールを使用できます。
残念ながら、このアプローチは古いプラットフォーム、あなたの場合は.NET 2.0を残します。 .NET 2.0のサポートを維持する必要がある場合は、別個の.NET 2.0アセンブリをビルドするための別個のプロジェクト(リンクされたファイルを使用)が必要です。
詳細については...
違いは何ですか!?
netstandard
)-これは、新しいクロスプラットフォームBCL APIです。それは単なるAPI定義であり、実装ではないという意味での「標準」です。このAPI(のバージョン)にライブラリをコンパイルでき、そのバージョンをサポートするプラットフォームで実行できるという考え方です。netstandard
のリファレンス実装と考えることができます(数ビット追加)。それは、そのAPIのクロスプラットフォーム実装です。 UIや他のフレームワークがその上に構築される可能性はありますが、現時点では、ASP.NET Coreの選択プラットフォームとして唯一の足場が機能しています。 [補足:歴史的な理由により、「。NET Core」はnetcore
NuGetターゲットとは完全に異なります。 NuGetコンテキストでは、 netcore
は "Windows 8/8.1/10"] を意味します。netstandard
に置き換えられました。netstandard
バージョンとは完全に互換性がありません。そのため、他のプラットフォームよりもサポートがはるかに困難です。ただし、メモリの制約が厳しいデバイスでは引き続き使用されます。netstandard
に置き換えられました。