雑記
 

NuGetでパッケージをインストールする方法

2020/9/28

この記事が対象とする製品・バージョン

VS2019 Visual Studio 2019 対象です。
VS2017 Visual Studio 2017 対象です。
VS2015 Visual Studio 2015 対象ですが、画面や操作が異なる場合があります。
VS2013 Visual Studio 2013 対象ですが、画面や操作が異なる場合があります。
VS2012 Visual Studio 2012 対象外ですが、同じような意味の操作なので参考になります。
VS2010 Visual Studio 2010 × 対象外です。
VS2008 Visual Studio 2008 × 対象外です。
VS2005 Visual Studio 2005 × 対象外です。
VS.NET 2003 Visual Studio 2003 × 対象外です。
VS.NET 2002 Visual Studio (2002) × 対象外です。

目次

 

1.Visual Studio の画面からNuGetでパッケージをインストールする手順

 

Install-Package というコマンドを使ってインストールしたい場合は、2.Install-PackageコマンドでNuGetパッケージをインストールする手順 を参照してください。

コマンド例:

PM> Install-Package System.Drawing.Common -Version 5.0.0-rc.1.20451.14

 

手順1.ソリューションエクスプローラーでプロジェクトを右クリックします。

手順2.[NuGet パッケージの管理] をクリックします。

NuGet パッケージの管理

 

手順3.パッケージソースが nuget.org になっていることを確認します。

ヒント: nuget.org が存在しない場合 → 困った場合 困った3.nuget.org がない

手順4.参照をクリックします。

NuGetパッケージの管理

 

手順5.検索欄に検索キーワードを入力します。

ヒント:パッケージ名の一部や、欲しい機能を入力します。

手順6.目的のパッケージが見つかったらクリックして詳細情報を確認します。

ヒント:説明文・作成者・公開日が良く見る項目です。正式に使用する場合は、ライセンスを確認してください。使用条件が付いている場合があります。

手順7.インストールボタンをクリックします。

NuGetパッケージのインストール

 

手順8.変更のプレビューを確認し、OKをクリックします。

ヒント:選択したパッケージが他のパッケージに依存している場合、その他のパッケージもインストールされます。この変更のプレビューで実際にインストールされるものを確認できます。

NuGetパッケージのインストールのプレビュー

 

以上

 

 

2.Install-PackageコマンドでNuGetパッケージをインストールする手順

 

コマンドがわからない場合は、1.Visual Studio の画面からNuGetでパッケージをインストールする手順 を参照してください。

コマンド例:

PM> Install-Package System.Drawing.Common -Version 5.0.0-rc.1.20451.14

 

手順1.[ツール]メニューから [NuGet パッケージマネージャー] - [パッケージマネージャーコンソール]をクリック

手順2.インストールコマンドを入力して Enter

コマンドの例

Install-Package System.Drawing.Common -Version 5.0.0-rc.1.20451.14

パッケージマネージャーコンソール

 

以上

 

 

3.困った場合

困った1.あるはずの検索結果が1つも出てこない

アドバイス1.会社のような組織の中のネットワークで使用していますか?

会社のような組織では、インターネットに接続するためにプロキシーサーバーを利用している場合があります。この場合、設定によってはVisual StudioからNuGetに接続できません。

プロキシーサーバーを使用しているかどうかは、Windowsの場合、 Windowsキー+Rキー を押して、「ファイル名を指定して実行」を開き、「rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,4」を実行します。インターネットオプションの接続タブが開きます。

※要するに、インターネットオプションの接続タブを開いているだけですが、この説明で通用しない人のために文字で一番説明しやすい記述をしました。(かえってわかりにくかったらすいません。)

ここで「LANの設定」をクリックします。ここで自動構成スクリプトが指定されているか、プロキシーサーバー欄にチェックが付いている場合は、プロキシーサーバーが使われています。

 

プロキシーサーバーを使用しているネットワークで、NuGetでの検索ができない場合、NuGet.configファイルでプロキシーを設定すると接続できるようになるかもしれません。

参考:NuGet.configでのプロキシー設定

https://docs.microsoft.com/ja-jp/nuget/reference/nuget-config-file

 

別の方法としてVisual Studioにプロキシーサーバー設定することで接続できるようになるかもしれません。

これはVisual Studioの実行ファイルであるdevenv.exeの設定ファイル、つまり、devenv.exe.configにプロキシー設定を書き込むことで実現できます。このファイルはdevenv.exeを同じフォルダー内にあります。このファイルのsystem.net要素に次のようなdefaultProxy要素を書き込めば完了です。

<system.net>
    <defaultProxy useDefaultCredentials="true" enabled="true">
        <proxy usesystemdefault="true" />
    </defaultProxy>
    ★もともとある記述は削除しないでこの位置に残しておいてください。
</system.net>

自動構成スクリプト(PAC=proxy auto config)を使っている組織では、usesystemdefault="true"の代わりに、scriptLocation="自動構成スクリプトのパス" を記述すれば良さそうです。

参考:Visual Studio のプロキシー設定

https://docs.microsoft.com/ja-jp/dotnet/framework/configure-apps/file-schema/network/proxy-element-network-settings

 

アドバイス2.パッケージソースを確認してみましょう

NuGetの通信先はVisual Studioに設定されています。

[ツール]メニューの[オプション]から [NuGet パッケージマネージャー] - [パッケージソース] をクリックして、nuget.org のURLを確認しましょう。https://www.nuget.org/api/v2/ または https://api.nuget.org/v3/index.json になっているはずです。そして WebブラウザーでそのURLにアクセスしてみてください。なにやらXMLが表示されれば通信できています。この場合はアドバイス1を参考にしてください。通信できない場合は、そもそもインターネットに接続できていない場合や、何かネットワークの設定でそのサイトにアクセスできない状態になっています。ネットワークの問題を解決する必要があります。

 

困った2.インストールしないで使いたい

アドバイス.大丈夫なんです。インストールしてください。

Windowsで「何かインストールする」といわれると、「良くわからないものはインストールしたくない」、「他のアプリケーションやプログラムに影響が出るかもしれないから嫌だ」と思うかもしれません。

しかし、紛らわしいのですが、NuGetの「インストール」は通常のWindowsのインストールのことではないのです。

NuGetのインストールで影響を受けるのは、VBまたはC#で作成している対象のプロジェクト・ソリューションだけです。他のプロジェクトには一切影響しませんし、ましてやWindowsの他のアプリケーションにも影響しません。

だからばんばんインストールして大丈夫です。わけがわからなくなったらそのソリューションやプロジェクトはもう開かないことにして、新しいソリューションやプロジェクトを作成するとまたゼロから開始できます。(もちろん、プロジェクトからパッケージをアンインストールすることもできます。)

誤解する人が多いので「インストール」という言葉を使わないで欲しいものです。「プロジェクトに追加」くらいのメニューにしておいてもらえれば誰も心配しないと思うのですけど。

 

困った3.nuget.org がない。

アドバイス.登録しましょう

nuget.org を登録する手順。

[ツール]メニューの[オプション]から [NuGet パッケージマネージャー] - [パッケージソース] をクリック。パッケージソースの + ボタンを押す。名前がPackage Source 、ソースが http://packagesource の項目が自動的に追加されるので、これを次のように修正する。名前 nuget.org、ソース https://www.nuget.org/api/v2/ 。そして OK をクリック。

※より新しいURLは https://api.nuget.org/v3/index.json かもしれません。うまくいかなければ両方試して見ましょう。

 

困った4.インターネットに接続できない環境なんです。

アドバイス.別のマシンでインタネットからダウンロードしたパッケージをコピーして適用します。

インターネットにつなげられない環境のVisual StudioでNuGetのパッケージをインストールするには、別のインターネットにつなげられるパソコンでブラウザーを使ってパッケージをダウンロードし、フォルダーに格納します。Visual Studioはこのフォルダーからパッケージをインストールすることができます。

パッケージをダウンロードしてフォルダーに格納するには、https://www.nuget.org/ で目的のパーケージのページに行き、右上の方にある Download pacakge というリンクをクリックします。そのパッケージがローカルにファイルとしてダウンロードされるので、それをフォルダーに格納します。

フォルダーからパッケージをインストールするには、[ツール]メニューの[オプション]から [NuGet パッケージマネージャー] - [パッケージソース] をクリックして、パッケージソースの + ボタンを押します。名前がPackage Source 、ソースが http://packagesource の項目が自動的に追加されるので、これを次のように修正します。名前 folder (名前は自由です)、ソース その目的のフォルダーのパス。たとえば、\\shared\folder または C:\localfolder\nuget など。 そして OK をクリック。後は、NuGetのパッケージを検索するときに、nuget.org の代わりにここで追加したソースを選択します。

参考:NuGet.orgが使えなくてもNuGetにアクセスする方法 (つまり、飛行機の中にいる場合) (英語)

https://www.hanselman.com/blog/HowToAccessNuGetWhenNuGetorgIsDownOrYoureOnAPlane.aspx

 

 

 

4.参考情報

4-1.現在インストールされているパッケージの確認方法

ソリューションエクスプローラーで依存関係 - パッケージを展開することで確認できます。(環境によってはこの方法では確認できません。)

依存関係

 

もう1つの方法は、プロジェクトを右クリックして、[NuGetパッケージの管理]をクリックして開く画面で、「インストール済みのパッケージ」をクリックする方法です。

インストール済みのパッケージ

 

4-2.パッケージコンソールのインストールコマンドの取得方法

インストールコマンドは Install-Package ・・・・・ という形式です。インストールコマンドを調べるには Webブラウザーで https://www.nuget.org/ にアクセスし、対象のパッケージを検索して、Package Manager欄の記載を見ます。

インストールコマンドの取得

 

5.参考

 

NuGet パッケージ マネージャーを使用して Visual Studio にパッケージをインストールして管理する

https://docs.microsoft.com/ja-jp/nuget/consume-packages/install-use-packages-visual-studio

Visual Studioの画面操作でNuGetのパッケージをインストール・アンインストール・更新・管理等する方法を画像つきでわかりやすく解説しています。

 

Visual Studio でパッケージ マネージャー コンソールを使用してパッケージをインストールおよび管理する (PowerShell)

https://docs.microsoft.com/ja-jp/nuget/consume-packages/install-use-packages-powershell

install-packageコマンドなどを使用するパッケージマネージャーコンソールの説明です。

 

NuGetの概要

https://docs.microsoft.com/ja-jp/nuget/what-is-nuget

NuGetの目的や仕組みを詳しく解説しています。

 

 

NuGet(英語)

https://www.nuget.org/

NuGetの全パッケージを検索できます。