マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

背景

  • 昨今の技術の複雑化により、GACでは1台のPCに複数の環境を構築・共存させることが難しくなってきた。
  • そこで、NuGetでは、パッケージ管理システムにより、
    • Webからダウンロードしたパッケージをローカルのpackagesフォルダに格納するようにした。
    • これにより、1台のPCに複数の環境を共存させることが、以前と比べて容易になった。
  • Visual Studio のバージョン
    • Visual Studio 2010 以前に NuGet を使用する場合は、個別に Visual Studio に追加インストールする必要があった。
    • Visual Studio 2012 以降では、NuGet も Visual Studio に同梱されるようになった。

サイト

  • 以下の2つのサイトがある。
  • nuget.org
    • NuGet を使用してインストールできるパッケージ (NuGet パッケージ) が多数公開されている。
    • 自作ライブラリのパッケージ (NuGet パッケージ) を作成して、公開することもできる。
  • サイトの概要
    • 双方とも、マイクロソフトが直接運営しているサイトではなく、
      非営利団体のオープンソース コミュニティによって運営されている。

NuGet を使うメリット

一連のパッケージ管理が簡便になる。

  • 古いパッケージの参照設定を解除
  • 古いパッケージを削除
  • 新しいパッケージに更新
  • 新しいパッケージを参照設定に追加

パッケージの依存関係の定義と維持

パッケージの依存関係を定義でき、既定では依存関係が壊れるような
パッケージの更新・削除はできず、パッケージ間の関連をキレイに保つことができる。

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

.NET アセンブリ (*.dll)

ASP.NET MVC や、Entity Framework など

JavaScript や、CSS などのライブラリ

jQuery や、jQuery の各種プラグインなど

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

各プロジェクトに含まれる packages.config

ソリューションフォルダ直下の packages フォルダ

トラブルシュート

NuGet使用時

Nuget使用時に「error MSB3086 Task could not find AL.exe」が発生

MSBuildでのビルドに必要なSDKがインストールされていなくてエラーになるというケース。

Nuget使用時に「warning MSB3247 Found conflicts between different versions of the same dependent assembly.」が発生

  • 恐らく、NuGet導入により多くの人が遭遇している問題。
  • バインディング リダイレクトによって対応可能。

Nuget使用時に「warning NU1701 Package 'xxxxx' was restored using 'yyyyy' instead of the project target framework 'zzzzz'...」が発生

  • netからnetcoreappのパッケージを参照した場合などに発生する。
  • また、netとnetstandardが混在している場合、net側でnetstandardを
    サポートしていないアセンブリを使用しているだけで発生する。

PackageReferenceに切り替え後のビルドで「error CS0246 The type or namespace name ...」が発生

dotnetコマンドのビルドで「error NU1605 Detected package downgrade」が発生

ビルド時

参考

NuGet を使用したパッケージ管理

NuGetパッケージの開発と公開

NuGetプライベート・リポジトリ

NuGetパッケージのデバッグ

ASP.NET の Modernization


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


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-11-14 (水) 10:10:43 (7d)