「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>プログラムの配付技術]]
-戻る
--[[プログラムの配付技術]]
--[[ビルドスクリプト]]

* 目次 [#gd26055e]
#contents

*概要 [#v8acd5e1]
-.NET 向けのパッケージ管理システム。
-[[公式サイト>https://www.nuget.org/]]には、NuGet を使用してインストールできるパッケージ (NuGet パッケージ) が多数公開されている。
-https://www.nuget.org/

**背景 [#ob06d863]
-昨今の技術の複雑化により、GACでは1台のPCに複数の環境を構築・共存させることが難しくなってきた。

-そこで、NuGetでは、パッケージ管理システムにより、
--Webからダウンロードしたパッケージをローカルのpackagesフォルダに格納するようにした。
--これにより、1台のPCに複数の環境を共存させることが、以前と比べて容易になった。

**Visual Studio のバージョン [#t7f469e2]
Visual Studio 2010 までで NuGet を使用する場合は、~
個別に Visual Studio に追加インストールする必要があったが、~
Visual Studio 2012 以降では、NuGet も Visual Studio に同梱されるようになった。
-Visual Studio のバージョン
--Visual Studio 2010 以前に NuGet を使用する場合は、個別に Visual Studio に追加インストールする必要があった。
--Visual Studio 2012 以降では、NuGet も Visual Studio に同梱されるようになった。

**サイト [#re2d48cd]
-以下の2つのサイトがある。~

--[[nuget.org>https://www.nuget.org/]]~
---NuGet を使用してインストールできるパッケージ (NuGet パッケージ) が多数公開されている。
---自作ライブラリのパッケージ (NuGet パッケージ) を作成して、公開することもできる。

--[[symbolsource.org>https://www.symbolsource.org/]]
---[[「シンボル サーバー」と「ソース サーバー」>ビルド環境と開発環境のソースファイルパスを一致させる(PDB)。]]の機能を提供している。
---これにより、自作のNuGetパッケージのデバッグ・シンボルとソース・ファイルを公開できる。

-サイトの概要
--双方とも、マイクロソフトが直接運営しているサイトではなく、~
非営利団体のオープンソース コミュニティによって運営されている。

--使用許諾
---nuget.orgの使用許諾~
NuGet Gallery | Terms and Conditions~
https://www.nuget.org/policies/Terms

---symbolsource.orgの使用許諾~
Terms of Service | SymbolSource.org~
https://www.symbolsource.org/Public/Home/TermsOfService

*NuGet を使うメリット [#v447cd4b]

**一連のパッケージ管理が簡便になる。 [#x47f83dc]
-古いパッケージの参照設定を解除
-古いパッケージを削除
-新しいパッケージに更新
-新しいパッケージを参照設定に追加

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

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

**.NET アセンブリ (*.dll) [#g6a64b5f]
ASP.NET MVC や、[[Entity Framework]] など

**JavaScript や、CSS などのライブラリ [#u1350163]
jQuery や、jQuery の各種プラグインなど

*NuGet で使用するファイル/フォルダ [#t9244c35]

**各プロジェクトに含まれる packages.config [#mc35e2b9]
当該プロジェクトにインストールされている NuGet パッケージが記述される
-当該プロジェクトにインストールされている NuGet パッケージが記述される
-[[Visual Studio 2017以降は、Projectファイルに統合されたPackageReferenceを使用できる。>NuGet を使用したパッケージ管理#kd22a95f]]

**ソリューションフォルダ直下の packages フォルダ [#z8225700]
プロジェクトにインストールした NuGet パッケージ本体が格納される
-プロジェクトにインストールした NuGet パッケージ本体が格納される
-[[Visual Studio 2017以降は、PackageReferenceを使用すると、packages フォルダは生成されなくなる。>NuGet を使用したパッケージ管理#kd22a95f]]

*トラブルシュート [#g0904008]

**NuGet使用時 [#wcbf8047]

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

***[[Nuget使用時に「warning NU1701 Package 'xxxxx' was restored using 'yyyyy' instead of the project target framework 'zzzzz'...」が発生>NuGet を使用したパッケージ管理#hfdecb5a]] [#t9272c99]

***[[Nuget使用時に「error MSB3086 Task could not find AL.exe」が発生]] [#j8444cc2]

***[[Nuget使用時に「error MSB4036 'GetReferenceNearestTargetFrameworkTask' task was not found.」が発生]] [#j8444cc2]

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

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

***[[dotnetコマンドのビルドで「error NU1605 Detected package downgrade」が発生]] [#pe39e6b9]

**[[ビルド時>MSBuild#k9e791f6]] [#u9496ebd]

*参考 [#u9091665]
**[[NuGet を使用したパッケージ管理]] [#wd520c58]
**[[NuGetパッケージの開発と公開]] [#w6bc4ec1]
**[[NuGetプライベート・リポジトリ]] [#h517e99c]
**[[NuGetパッケージのデバッグ]] [#b842cc20]

**[[ASP.NET の Modernization]] [#zcf72241]
**[[Nuget使用時に「error MSB3086 Task could not find AL.exe」が発生]] [#j8444cc2]

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


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