Visual Studio パッケージ マネージャー コンソールを使用して、パッケージを管理する (PowerShell)
Visual Studio の パッケージ マネージャー コンソールでは、PowerShell コマンドを使用して NuGet パッケージを操作することができます。 パッケージ マネージャー UI を使用して操作を行う方法がない場合は、コンソールも使用できます。 コンソールでは、dotnet CLI や NuGet CLI コマンドを使用することもできます。
この記事では、パッケージ マネージャー コンソールで PowerShell コマンドを使用して NuGet パッケージを検索、インストール、更新、アンインストールする方法について説明します。 パッケージ マネージャー コンソールを使用したPowerShell コマンド のより詳しい使い方については、PowerShell リファレンスを参照してください。
重要
この記事の PowerShell のコマンドと引数は、Visual Studio パッケージ マネージャー コンソール固有のものです。 これから節女するコマンドは、一般的な PowerShell の環境で使用できる PackageManagement module commands とは異なります。 各環境には他の環境では使用できないコマンドがあり、同じ名前のコマンドでも特定の引数が異なる場合があります。
コンソールの可用性
Visual Studio 2017 以降に関しては、.NET 関連のワークロードを作成すると、NuGet および NuGet パッケージ マネージャーが自動的にインストールされます。 パッケージ マネージャー は個別にインストールすることもできます。手順はVisual Studio のインストーラー内で [個別のコンポーネント] > [コード ツール] > [NuGet パッケージ マネージャー] を選択します。
また、NuGet パッケージ マネージャーの拡張機能を検索することもできます。手順は [ツール]>[拡張機能と更新プログラム] または メニューの [拡張機能] から行えます。 Visual Studio 内で拡張機能のインストーラーを使用できない場合は、拡張機能を https://dist.nuget.org/index.html から直接ダウンロードできます。
パッケージ マネージャー コンソールは、Windows の Visual Studio に使用するパッケージ マネージャー に組み込むことができます。 Visual Studio Code と Visual Studio for Mac にはコンソールは含まれません。 Visual Studio for Mac には NuGet パッケージを管理するための UI があり、同等のコンソール コマンドがNuGet CLIを通して使用できます。 詳しくは、Visual Studio for MacでNuGet パッケージをインストールして管理する方法を参照してください。
パッケージを検索してインストールする
パッケージ マネージャー コンソールを使用して、パッケージをいち早く見つけてインストールする方法を紹介します。
Visual Studio でプロジェクトまたはソリューションを開き、[ツール]>[NuGet パッケージ マネージャー]>[パッケージ マネージャー コンソール] を選択してコンソールを開きます。
コンソールで、
Find-Package
とキーワード (keyword)を入力すれば、インストールしたいパッケージを見つけられます。 たとえば、キーワードelmah
を含むパッケージを検索するには、次のコマンドを実行します。 パッケージ名が既にわかっている場合は、この手順をスキップします。Find-Package elmah
名前を見つけたら、コマンド
Install-Package
を使用してパッケージをインストールします。 たとえば、Elmah.MVC
パッケージをインストールするには、次のように入力します。Install-Package Elmah.MVC
これらのコマンドの詳細については、「パッケージの検索」や「パッケージのインストール」を参照してください。
ヒント
多くのコンソール操作は、既知のパス名のソリューションを Visual Studio で開いているという前提に動作します。 保存されていないソリューションがある場合やソリューションがない場合は、ソリューションが開いていない、または保存されていないというエラー が表示されます。確実にソリューションを開いてセーブしているかどうかを確認してください。エラーを修正するには、ソリューションを作成して保存するか、保存されていないソリューションを保存します。
コンソールの操作
パッケージ マネージャー コンソールを開くには、トップ メニューで [ツール]>[NuGet パッケージ マネージャー]>[パッケージ マネージャー コンソール] の順に選択します。 コンソールは、Visual Studio ウィンドウで操作し、必要に応じて配置を変更できます。 詳細については、「Visual Studio のウィンドウ レイアウトをカスタマイズする」を参照してください。
既定では、コンソール コマンドは、ウィンドウの上部にあるコントロールに表示されている特定のパッケージ ソースとプロジェクトに対して動作します。
別のパッケージ ソースやプロジェクトを選択すると、後続のコマンドの既定値が変更されます。 既定値を変更せずにコマンドの設定をオーバーライドするには、コマンドで -Source
か-ProjectName
のオプションを使用できます。このコマンドはほとんどのコンソールでサポートされています。
パッケージ ソースを管理するには、歯車アイコンを選択した後に、[ツール]>[オプション]>[NuGet パッケージ マネージャー]>[パッケージ ソース] ダイアログボックスを開きます。 また、プロジェクト セレクターの横にあるコントロールを使用すると、コンソールのコンテンツがクリアになります。
右端のボタンをクリックすると、実行時間の長いコマンドが中断されます。 たとえば、Get-Package -ListAvailable -PageSize 500
を実行すると、の既定のソース上の上位 500 ものパッケージ (nuget.org など) が一覧で表示されます。これには数分かかることがあります。
パッケージを見つける
既定のソースでパッケージを検索するには、Find-Package を使用します。
特定のキーワードを含むパッケージを検索して一覧で表示するには:
Find-Package <keyword1> Find-Package <keyword2>
名前が文字列で始まるパッケージを検索して一覧で表示するには:
Find-Package <string> -StartWith
既定では、
Find-Package
を実行すると、20 個のパッケージが一覧で表示されます。 もっと多くのパッケージを表示するためには-First
を使用します。 たとえば、最初の 100 個のパッケージを表示するには、次のように実行します。Find-Package <keyword> -First 100
特定のパッケージのすべてのバージョンを一覧で表示するには:
Find-Package <PackageName> -AllVersions -ExactMatch
パッケージをインストールする
パッケージを既定のプロジェクトにインストールするには、Install-Package <PackageName>
を使用します。 Install-Package のコンソール コマンドを実行するには、次のようにします。
- NuGet パッケージのインストールした後の手順
- コンソールのウィンドウに、適用されるライセンス条項と同意書が表示されます。 条項に同意しない場合は、パッケージをアンインストールする必要があります。
- プロジェクト ファイルおよびノード [参照] の下のソリューション エクスプローラーに、パッケージの参照を追加します。 変更したプロジェクトファイルを確認するには、事前にプロジェクトを保存している必要があります。
既定では、 Install-Package
を使用すると、コンソール ウィンドウで指定されている既定のプロジェクトにパッケージを追加します。 既定ではないプロジェクトにパッケージを追加するには、 -ProjectName
を使用します。 たとえば、既定ではない Elmah.MVC
プロジェクトにUtilitiesLib
パッケージを追加するには、次のコマンドを実行します。
Install-Package Elmah.MVC -ProjectName UtilitiesLib
パッケージのアンインストール
既定のプロジェクトからパッケージをアンインストールするには、Uninstall-Package <PackageName>
を使用します。 パッケージ名を確認する必要がある場合は、Get-Package を使用して、既定のプロジェクトに現在インストールされているすべてのパッケージを表示します。
Uninstall-Package は次のアクションを実行します。
- パッケージへの参照をプロジェクトから 管理形式にかかわらず削除します。 参照はソリューション エクスプローラーに表示されなくなります。 bin フォルダーから参照ファイルを削除するには、プロジェクトのリビルドが必要になる場合があります。
- app.config または web.config に対してパッケージをインストールしたことによる変更を元に戻します。
- 以前にインストールされた依存関係を削除します (残りのパッケージがそれらの依存関係を使用していない場合)。
パッケージとその未使用の依存関係をすべてアンインストールするには、次のコマンドを実行します。
Uninstall-Package <PackageName> -RemoveDependencies
他のパッケージが依存している場合でもパッケージをアンインストールするには、次のコマンドを実行します。
Uninstall-Package <PackageName> -Force
パッケージを更新する
パッケージを更新するには、Get-Package と Update-Package を使用します。 次のコマンドを実行することもできます。
インストールされているパッケージで使用できる新しいバージョンがあるかどうかを確かめるには:
Get-Package -updates
特定のパッケージを更新するには:
Update-Package <PackageName>
プロジェクト内のすべてのパッケージを更新するには:
Update-Package -ProjectName <ProjectName>
ソソリューション内のすべてのパッケージを更新するには:
Update-Package
コンソールで nuget.exe CLI を使用する
NuGet CLI は、ほとんどのコンソール操作が可能です。 ただし、PowerShell コンソール コマンドは、Visual Studio で保存済みのプロジェクト/ソリューションのコンテキスト内で動作し、多くの場合、同等の CLI コマンドよりも実行できす操作が多いです。 たとえば、Install-Package
を使用してパッケージをインストールすると、プロジェクトファイルへの参照が追加されますが、NuGet CLI コマンドでは参照は追加されません。 このため、Visual Studio で作業する開発者は、通常、NuGet CL ではなくコンソールコマンドを優先的に使用します。
パッケージ マネージャー コンソールで NuGet CLI コマンドを使用するには、NuGet.CommandLine のパッケージをインストールします。
Install-Package NuGet.CommandLine
上記のコマンドを入力すると、最新バージョンの NuGet CLI をインストールします。 特定のバージョンをインストールするには、-Version
を使用します。 たとえば、Version 4.4.1 をインストールするには、次のように入力します。
Install-Package NuGet.CommandLine -Version 4.4.1
NuGet.CommandLine
パッケージをインストールしたら、パッケージ マネージャー コンソールで全ての NuGet CLI コマンドを実行できるようになります。
パッケージ マネージャー コンソールを拡張する
一部のパッケージでは、コンソール用の新しいコマンドがインストールされます。 たとえば、MvcScaffolding
を実行すると、Scaffold
のようなコマンドが作成され、これにより、ASP.NET MVC のコントローラーとビューが生成されます。
NuGet PowerShell プロファイルを設定する
PowerShell プロファイルを作成すれば、一般的なコマンドがすべて PowerShell コンテキストで使用できるようになります。そのため、セッション間で PowerShell の設定が失われることはありません。 NuGet は固有のプロファイルがサポートされています。通常以下の場所にあります。%UserProfile%\Documents\WindowsPowerShell\NuGet_profile.ps1
ユーザー プロファイルの場所を見つけるには、コンソールで $profile
と入力します。
$profile
C:\Users\<user>\Documents\WindowsPowerShell\NuGet_profile.ps1
プロファイルがその場所に存在するかどうかを確認するには、test-path $profile
と入力します。 False
のコマンドが表示された場合は、指定した名前のプロファイルを表示された場所に作成する必要があります。 詳細については、「Windows PowerShell プロファイル」を参照してください。