PCL または .NET Standard を使用するマルチプラットフォーム ライブラリ プロジェクトを作成すると、結果として得られる NuGet を、ターゲット プロファイルをサポートする任意の .NET プロジェクト (ASP.NET プロジェクトなど)、または WinForms、WPF、または UWP を使用するデスクトップ アプリに追加できます。
ライブラリには、選択した PCL または .NET Standard プロファイルおよび追加されるその他の NuGet でサポートされるコードのみを含めることができます。 これは、.NET 基本クラス ライブラリで完全に表現できるビジネス ロジックとアルゴリズムに適しています。
1 つのアセンブリが作成され、NuGet パッケージに組み込まれます。
後でプラットフォーム固有の機能が必要になった場合は、プラットフォーム固有のプロジェクトを追加できます。
マルチプラットフォーム ライブラリ NuGet を作成する手順
[ファイル] > [新規ソリューション] を選択します (または、既存のソリューションを右クリックして [追加] > [新規プロジェクト] を選択します)。
以下のように [マルチプラットフォーム] > [ライブラリ] から [マルチプラットフォーム ライブラリ] を選択します。
以下のように [名前] と [説明] を入力し、[すべてのプラットフォームで 1 つ] を選択します。
ウィザードの完了。 ソリューションに 1 つのライブラリ プロジェクトが作成されます。
新しいライブラリ プロジェクトを右クリックし、[オプション] を選択します。 [ビルド] > [全般] セクションでは、[対象とする Framework] を設定できます。.NET ポータブル PCL プロファイルまたは .NET Standard バージョンを選択します。
また、[プロジェクト オプション] ウィンドウで、[NuGet パッケージ] > [メタデータ] セクションを開き、必要なメタデータ (およびオプションのメタデータ) を入力します。
ライブラリ プロジェクトを右クリックし、[NuGet パッケージの作成] を選択する (またはソリューションのビルドかデプロイを行う) と、.nupkg NuGet パッケージ ファイルが (構成に応じてデバッグまたはリリースのどちらかの) /bin/ フォルダーに保存されます。
出力の確認
NuGet パッケージは ZIP ファイルでもあるため、生成されたパッケージの内部構造を調べることができます。
このスクリーンショットは、PCL ベースの NuGet の内容を示しています。含まれる PCL アセンブリは 1 つだけです:
プラットフォーム固有のコードの追加
PCL ベースのプロジェクトと .NET Standard ベースのプロジェクトには、プラットフォーム固有の参照 (iOS や Android の機能など) を含めることはできません。
既存の PCL プロジェクトまたは .NET Standard プロジェクトを展開してプラットフォーム固有のコードを含める必要がある場合、これを行うには、プロジェクトを右クリックし、[追加] > [プラットフォームの実装を追加...] を選択します。
1 つ以上のプラットフォーム プロジェクトをソリューションに追加でき、必要に応じて既存の PCL または .NET Standard ライブラリを共有プロジェクトに変換できます。
共有プロジェクトに変換した後、[プロジェクト オプション]> [NuGet パッケージ]> [参照アセンブリ] セクションにアクセスし、(NuGet が以前に使用されたプロジェクトとの互換性が維持されるように) 必要なプロファイルが選択されていることを確認します。