Open棟梁Project - マイクロソフト系技術情報 Wiki

目次

NuGet とは

.NET 向けのパッケージ管理システム。Visual Studio 2010 までで NuGet を使用する場合は、個別に Visual Studio に追加インストールする必要があったが、Visual Studio 2012 以降では、NuGet も Visual Studio に同梱されるようになった。
公式サイトには、NuGet を使用してインストールできるパッケージ (NuGet パッケージ) が多数公開されている。

NuGet を使うメリット

NuGet でインストールできる、主なパッケージの種類

NuGet で使用するファイル/フォルダ

NuGet の操作

GUI での操作

Visual Studio の「NuGet パッケージの管理」画面で操作する。
[ツール]-[NuGet パッケージ マネージャー]-[ソリューションの NuGet パッケージの管理]

CUI での操作

Visual Studio の「パッケージ マネージャー コンソール」でコマンドを送信
[ツール]-[NuGet パッケージ マネージャー]-[パッケージ マネージャー コンソール]

主なコマンド

(参考)NuGet で使用できる全コマンド
https://docs.nuget.org/consume/package-manager-console-powershell-reference

例えば、パッケージの更新 (Update-Package) を行うと、以下の操作が行われる。
(簡単のため、依存関係は省略している)

  1. プロジェクトから、当該パッケージを削除する
    1. アセンブリ (*.dll) の場合、参照設定を解除する
    2. JavaScript や CSS の場合、ファイルそのものを削除する
  2. packages.config から、当該パッケージの項目を削除する
  3. packages フォルダから、古いバージョンのパッケージを削除する
  4. 更新後のバージョンのパッケージを、packages フォルダにダウンロードする
  5. packages.config に、更新後のパッケージの項目を追加する
  6. プロジェクトに、更新後のパッケージを追加する
    1. アセンブリ (*.dll) の場合、参照設定を追加する
      (参照先は、packages フォルダの中)
    2. JavaScript や CSS の場合、プロジェクトにファイルをコピーする

このため、NuGet パッケージについては、この

の整合性を保つため、コマンドを使用して NuGet 経由で管理することを基本とする。
(これらを手で編集することはオススメしない)

もし、こんなことをしてしまった場合はどうなる?

手動で、NuGet でインストールしたパッケージの参照設定を解除した

packages フォルダから、手動でフォルダを消した

消したパッケージが自動的に復元され、ビルドは正常終了する。パッケージの復元は、Visual Studio や、MSBuild でビルドした際、足りないパッケージを自動的に NuGet サイトからダウンロードする機能である。

パッケージの復元を行うための設定

さらに、MSBuild などのコマンドラインツールでのビルド時に、足りないパッケージをダウンロードするには、以下の設定を行う。

これにより、ソリューションフォルダ直下に「.nuget」フォルダができ、コマンドラインツールでのビルド時でも、足りないパッケージがあれば、ダウンロードしてくれる。
(MSBuild だけでなく、devenv によるビルドでも有効)

packages フォルダそのものを削除した

上記と同様、パッケージが復元され、ビルドは正常終了する。

packages.config を手動で編集した

<package> タグを消した

バージョン番号を編集した

アセンブリ参照先の種類

注意事項

NuGet でインストールしたパッケージ (*.dll) は、GAC には含まれない。
このため、NuGet でインストールしたパッケージをアプリケーションで使用する場合、「ローカルコピー」は必ず「True」にしておくこと。

参考サイト


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS