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

目次

NuGet の操作

GUI での操作

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

CUI での操作

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

参考

主なコマンド

パッケージの更新

パッケージの更新 (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 でインストールしたパッケージの参照設定を解除した

ビルド

Install-Package

Update-Package

Uninstall-Package

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

消したパッケージが自動的に復元され、ビルドは正常終了する。

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

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

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

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

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

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

packages.config を手動で編集した

<package> タグを消した

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

アセンブリ参照先の種類

GAC (Global Assembly Cache)

GAC に登録されるような従来のMicrosoft Windows Installerで配布されるようなパッケージは、今までどおり GAC に登録されているものを参照する。

NuGet

GAC に登録されていないパッケージ (OSS ライブラリなど) は、もちろん個別にパッケージをダウンロードし、それを参照することもできる。
しかし、そのパッケージが NuGet に登録されていれば、NuGet のメリットを享受するために NuGet 経由でインストールするのが良いのではないかと思われる。

それ以外

GAC にも NuGet にも登録されていないパッケージを使用する場合は、個別にダウンロードし、プロジェクトから参照させる。

注意事項

ローカルコピー

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

参考サイト


Tags: :デプロイ, :NuGet, :.NET開発


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