マイクロソフト系技術情報 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使用時に「warning MSB3247 Found conflicts between different versions of the same dependent assembly.」が発生

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

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

Nuget使用時に「error MSB4036 'GetReferenceNearestTargetFrameworkTask' task was not found.」が発生

Nuget使用時に「which has a higher version X than the version Y in the current target framework...」が発生

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: 2019-03-27 (水) 19:00:33 (230d)