NuGetはWikipediaによると
NuGetとは.NET Frameworkに対応するフリー・アンド・オープンソースのパッケージマネージャである
とのこと。
brewやapt-get、chocolatyみたいなものですね。
提供されているパッケージ類も豊富でテストスイートからフロントエンド、DB系まで色々9000個程。
NuGet Gallery | Packages
Windows版なら、VisualStudio自体にも内蔵されています。
我々*NIX使い向けにはCLIも提供されていますのでソイツを使いましょう。
github.com
無事にブチ込んでから環境変数を再読込すると、以下のような感じで出てきます。
$ nuget
NuGet Version: 4.3.0.4406
usage: NuGet <command> [args] [options]
Type 'NuGet help <command>' for help on a specific command.
Available commands:
add Adds the given package to a hierarchical source. http sources are not supp
orted. For more info, goto https://docs.nuget.org/consume/command-line-ref
erence#add-command.
config NuGet 構成値を取得または設定します。
delete サーバーからパッケージを削除します。
help (?) 全般的なヘルプ情報と他のコマンドに関するヘルプ情報を表示します。
init Adds all the packages from the <srcPackageSourcePath> to the hierarchical
<destPackageSourcePath>. http feeds are not supported. For more info, goto
https://docs.nuget.org/consume/command-line-reference#init-command.
install 指定されたソースを使用してパッケージをインストールします。ソースが指定されていない場合、NuGet 構成ファイルに定義されているすべてのソースが使用
されます。構成ファイルにソースが指定されていない場合、既定の NuGet フィードが使用されます。
list 指定したソースのパッケージ一覧を表示します。ソースが指定されていない場合、%AppData%\NuGet\NuGet.config に定義されている
すべてのソースが使用されます。NuGet.config にソースが指定されていない場合、既定の NuGet フィードが使用されます。
locals Clears or lists local NuGet resources such as http requests cache, temp ca
che or machine-wide global packages folder.
pack 指定された nuspec または project ファイルに基づいて、NuGet パッケージを作成します。
push サーバーにパッケージをプッシュして、公開します。
NuGet の既定の構成を取得するには、%AppData%\NuGet\NuGet.config を読み込み、ドライブのルートから現在のディレクトリ
の間にあるすべての nuget.config または .nuget\nuget.config を読み込みます。
restore NuGet パッケージを復元します。
setApiKey 指定されたサーバーの URL の API キーを保存します。URL が指定されていない場合、NuGet ギャラリーの API キーが保存されます。
sources %AppData%\NuGet\NuGet.config に指定されたソースの一覧を管理できます
spec 新しいパッケージの nuspec を生成します。このコマンドをプロジェクト ファイル (.csproj, .vbproj, .fsproj) と同じ
フォルダーで実行する場合、トークン化された nuspec ファイルが作成されます。
update パッケージを利用可能な最新バージョンに更新します。このコマンドで、NuGet.exe も更新されます。
詳細については、http://docs.nuget.org/docs/reference/command-line-reference を参照してください
つかいかた
たとえば、Office2007以降で採用されたOpen XMLをよろしく使うClosed XMLだと
NuGet Gallery | ClosedXML 0.90.0
これだけ。
$ nuget install ClosedXML
Feeds used:
https://api.nuget.org/v3/index.json
GET https://api.nuget.org/v3/registration3-gz-semver2/closedxml/index.json
OK https://api.nuget.org/v3/registration3-gz-semver2/closedxml/index.json 1041ms
Attempting to gather dependency information for package 'ClosedXML.0.90.0' with respect to project '/Users/shuzo_kino/csharp', targeting 'Any,Version=v0.0'
Gathering dependency information took 1.68 min
Attempting to resolve dependencies for package 'ClosedXML.0.90.0' with DependencyBehavior 'Lowest'
Resolving dependency information took 0 ms
Resolving actions to install package 'ClosedXML.0.90.0'
Resolved actions to install package 'ClosedXML.0.90.0'
Retrieving package 'ClosedXML 0.90.0' from 'nuget.org'.
Retrieving package 'DocumentFormat.OpenXml 2.7.2' from 'nuget.org'.
Retrieving package 'FastMember.Signed 1.1.0' from 'nuget.org'.
Retrieving package 'System.IO.FileSystem.Primitives 4.0.1' from 'nuget.org'.
Retrieving package 'System.IO.Packaging 4.0.0' from 'nuget.org'.
GET https://api.nuget.org/v3-flatcontainer/closedxml/0.90.0/closedxml.0.90.0.nupkg
OK https://api.nuget.org/v3-flatcontainer/closedxml/0.90.0/closedxml.0.90.0.nupkg 1042ms
Installing ClosedXML 0.90.0.
GET https://api.nuget.org/v3-flatcontainer/fastmember.signed/1.1.0/fastmember.signed.1.1.0.nupkg
OK https://api.nuget.org/v3-flatcontainer/fastmember.signed/1.1.0/fastmember.signed.1.1.0.nupkg 935ms
Installing FastMember.Signed 1.1.0.
GET https://api.nuget.org/v3-flatcontainer/documentformat.openxml/2.7.2/documentformat.openxml.2.7.2.nupkg
Adding package 'FastMember.Signed.1.1.0' to folder '/Users/shuzo_kino/csharp'
Added package 'FastMember.Signed.1.1.0' to folder '/Users/shuzo_kino/csharp'
Successfully installed 'FastMember.Signed 1.1.0' to /Users/shuzo_kino/csharp
OK https://api.nuget.org/v3-flatcontainer/documentformat.openxml/2.7.2/documentformat.openxml.2.7.2.nupkg 1155ms
Installing DocumentFormat.OpenXml 2.7.2.
GET https://api.nuget.org/v3-flatcontainer/system.io.packaging/4.0.0/system.io.packaging.4.0.0.nupkg
OK https://api.nuget.org/v3-flatcontainer/system.io.packaging/4.0.0/system.io.packaging.4.0.0.nupkg 996ms
Installing System.IO.Packaging 4.0.0.
GET https://api.nuget.org/v3-flatcontainer/system.io.filesystem.primitives/4.0.1/system.io.filesystem.primitives.4.0.1.nupkg
OK https://api.nuget.org/v3-flatcontainer/system.io.filesystem.primitives/4.0.1/system.io.filesystem.primitives.4.0.1.nupkg 880ms
Installing System.IO.FileSystem.Primitives 4.0.1.
Adding package 'System.IO.FileSystem.Primitives.4.0.1' to folder '/Users/shuzo_kino/csharp'
Added package 'System.IO.FileSystem.Primitives.4.0.1' to folder '/Users/shuzo_kino/csharp'
Successfully installed 'System.IO.FileSystem.Primitives 4.0.1' to /Users/shuzo_kino/csharp
Adding package 'System.IO.Packaging.4.0.0' to folder '/Users/shuzo_kino/csharp'
Added package 'System.IO.Packaging.4.0.0' to folder '/Users/shuzo_kino/csharp'
Successfully installed 'System.IO.Packaging 4.0.0' to /Users/shuzo_kino/csharp
Adding package 'DocumentFormat.OpenXml.2.7.2' to folder '/Users/shuzo_kino/csharp'
Added package 'DocumentFormat.OpenXml.2.7.2' to folder '/Users/shuzo_kino/csharp'
Successfully installed 'DocumentFormat.OpenXml 2.7.2' to /Users/shuzo_kino/csharp
Adding package 'ClosedXML.0.90.0' to folder '/Users/shuzo_kino/csharp'
Added package 'ClosedXML.0.90.0' to folder '/Users/shuzo_kino/csharp'
Successfully installed 'ClosedXML 0.90.0' to /Users/shuzo_kino/csharp
Executing nuget actions took 13.18 sec