Visual Studio for Mac に NuGet パッケージをインストールして管理する
重要
Visual Studio for Mac は、Microsoft の モダン ライフサイクル ポリシーに従って、2024 年 8 月 31 日に廃止される予定です。 引き続き Visual Studio for Mac を使用できますが、VS Code 用の新しい C# 開発キット拡張機能のプレビュー バージョンなど、Mac 上の開発者向けの他のいくつかのオプションがあります。
Visual Studio for Mac 内で NuGet パッケージ マネージャー UI を使用すると、プロジェクトやソリューション内で NuGet パッケージを簡単にインストール、アンインストール、更新することができます。 パッケージを検索し、.NET Core、ASP.NET Core、Xamarin プロジェクトに追加することができます。
この記事では、プロジェクトに NuGet パッケージを含める方法について説明し、プロセスをシームレスにするツール チェーンを示します。
Visual Studio for Mac での NuGet の使用の概要については、「クイック スタート: Visual Studio for Mac にパッケージをインストールして使用する」を参照してください。
パッケージを検索してインストールする
Visual Studio for Mac でプロジェクトを開いた状態で、 [ソリューション] ウィンドウ内の [依存関係] フォルダー (Xamarin プロジェクトを使用する場合は [パッケージ] フォルダー) を右クリックし、 [NuGet パッケージの管理] を選択します。
[NuGet パッケージの管理] ダイアログが表示されます。 中央の NuGet パッケージ リポジトリを検索できるように、ダイアログの左下隅にある [パッケージ ソース] ドロップダウンを確実に
nuget.org
に設定します。EntityFramework
などの特定のパッケージを検索するには、右上隅の [検索] ボックスを使用します。 使用するパッケージが見つかったら、それを選択し、 [パッケージを追加] ボタンを選んでインストールを開始します。パッケージはダウンロードされた後、プロジェクトに追加されます。 ソリューションは、編集中のプロジェクトの種類に応じて変化します。
Xamarin プロジェクト
- [参照] ノードには、NuGet パッケージの一部であるすべてのアセンブリのリストが含まれます。
- [パッケージ] ノードには、ダウンロードした各 NuGet パッケージが表示されます。 このリストのパッケージを更新したり、削除したりすることができます。
.NET Core プロジェクト
- [依存関係] > [NuGet] ノードには、ダウンロードした各 NuGet パッケージが表示されます。 このリストのパッケージを更新したり、削除したりすることができます。
NuGet パッケージの使用
NuGet パッケージが追加され、プロジェクト参照が更新されたら、他のプロジェクト参照の場合と同じように API に対してプログラミングできます。
必ず、必要な using
ディレクティブをファイルの先頭に追加してください。
using Newtonsoft.Json;
パッケージの更新
パッケージの更新は、[依存関係] ノード (または、Xamarin プロジェクトの場合は [パッケージ] ノード) を右クリックすることで、すべて一度に行うことも、パッケージごとに個別に行うこともできます。 NuGet パッケージの新しいバージョンを使用できる場合は、更新アイコン が表示されます。
コンテキスト メニューにアクセスするには、[依存関係] を右クリックして、[更新] を選択し、すべてのパッケージを更新します。
- [NuGet パッケージの管理] - プロジェクトにさらにパッケージを追加するためのウィンドウが開きます。
- [更新] - 各パッケージのソース サーバーを確認し、新しいバージョンをダウンロードします。
- [復元] - 不足しているパッケージをダウンロードします (既存のパッケージを新しいバージョンに更新しません)。
[更新] オプションと [復元] オプションはソリューション レベルでも使用でき、ソリューション内のすべてのプロジェクトに影響します。
パッケージのプレリリース版への更新
パッケージの新しいプレリリース版に更新するには、 [依存関係] を右クリックしてコンテキスト メニューを開き、 [NuGet パッケージの管理] メニューを選択します。
ダイアログの下部にある [Include prereleases](プレリリースを含める) チェックボックスをオンにします。
最後に、ダイアログの [更新プログラム] タブで、更新するパッケージを選択し、 [新しいバージョン] ドロップダウンから新しいプレリリース版を選択して、 [パッケージの更新] を選びます。
すべての古いパッケージの特定
[ソリューション] ウィンドウから、現在インストールされているパッケージのバージョンを確認できます。 更新するパッケージを右クリックします。
また、新しいバージョンのパッケージを使用できる場合は、パッケージ名の横に通知も表示されます。 更新するかどうかを決定できます。
表示されるメニューには、次の 2 つのオプションがあります。
- [更新] - ソース サーバーを確認し、新しいバージョン (存在する場合) をダウンロードします。
- [削除] - このプロジェクトからパッケージを削除し、プロジェクトの参照から関連するアセンブリを削除します。
ソリューションのパッケージの管理
ソリューションのパッケージの管理は、複数のプロジェクトを同時に操作するための便利な手段です。
ソリューションを右クリックし、[NuGet パッケージの管理] を選択します。
ソリューションのパッケージを管理する場合、UI を利用して、操作によって影響を与えるプロジェクトを選択できます。
[統合] タブ
複数のプロジェクトを含むソリューションで作業する場合、各プロジェクトで同じ NuGet パッケージを使う場合は、必ずそのパッケージの同じバージョン番号も使います。 Visual Studio for Mac を使用すると、これが簡単になります。ソリューション用のパッケージの管理を行う場合に、パッケージ マネージャー UI の [統合] タブを指定します。 この [統合] タブを使用すると、ソリューション内の各プロジェクトで使用されているパッケージのバージョン番号が異なる場合を容易に確認できます。
この例の場合、NuGetDemo プロジェクトでは Microsoft.EntityFrameworkCore 3.1.23 が使用されていますが、NuGetDemo.Shared では Microsoft.EntityFrameworkCore 5.0.2 が使用されています。 複数のパッケージ バージョンを統合するには、次の手順を実行します。
- プロジェクトの一覧で、更新するプロジェクトを選択します。
- [新しいバージョン] リスト内で該当するすべてのプロジェクトに使用するバージョン (Microsoft.EntityFrameworkCore 6.0.3 など) を選択します。
- [パッケージの統合] ボタンを選択します。
パッケージ マネージャーによって、選択されたすべてのプロジェクトに対して、選択されたパッケージ バージョンがインストールされます。パッケージは [統合] タブ上には表示されなくなります。
パッケージ ソースの追加
インストール可能なパッケージが最初に nuget.org から取得されます。ただし、Visual Studio for Mac に他のパッケージの場所を追加することができます。 これは、開発中の独自の NuGet パッケージをテストする場合や、会社または組織内でプライベートの NuGet サーバーを使用する場合に便利です。
Visual Studio for Mac で、[Visual Studio]、[基本設定]、[NuGet]、[ソース] の順に移動し、パッケージ ソースのリストを表示して編集します。 [ソース] はリモート サーバー (URL で指定) またはローカル ディレクトリである場合があります。
[追加] を選んで新しいソースを設定します。 パッケージ ソースのわかりやすい [名前] と [場所] (URL またはファイル パス) を入力します。 ソースがセキュリティで保護された Web サーバーの場合は、 [ユーザー名] と [パスワード] も入力します。それ以外の場合はこれらの項目を空白のままにします。
パッケージを検索する際に、以下のようにさまざまなソースを選択することができます。
バージョン コントロール
NuGet のドキュメントでは、ソース管理にパッケージをコミットせずに NuGet を使用する方法について説明しています。 ソース管理でバイナリおよび未使用の情報を格納しない場合は、自動的にサーバーからパッケージを復元するように Visual Studio for Mac を構成することができます。 開発者が初めてソース管理からプロジェクトを取得すると、Visual Studio for Mac が自動的に必要なパッケージをダウンロードしてインストールします。
packages
ディレクトリを追跡対象から除外する方法の詳細については、特定のソース管理のドキュメントを参照してください。