Visual Studio (VS)の拡張NuGetは、開発者がサードパーティーの追加機能をインストールして維持することを容易にする。.NETプラットフォームの開発者は2010年からNuGetの恩恵を得てきたが、新しい2.5リリースでは、C++開発者もNuGetでプロジェクトにツールやライブラリを追加することができるようになった。(2.3と2.4をお探しの方に、あなたはなにも見落としていません--NuGetチーム曰く、更新が大きかったためこれらのバージョン番号はスキップされました。)
新しいリリースではいくつかの改善が加えられている:
- 更新やインストール時に、デフォルトでスキップするのではなく(すべてにはいを含めて)上書きするかを確認する機能
- 以前リリースされたPowerShellコマンドレットを超えて、GUIでインストールされたすべてのパッケージを更新する“すべてを更新する”ボタンがサポートされている
- 大文字小文字を区別しない問題を修正–ファイルの大文字小文字の違いからNuGetがファイルを見誤る問題があった。この問題は通常、Linux上のMonoプロジェクトで発生する。
- Android向けのMonoプロジェクトをインストールできるNuGetパッケージを作成することができる、MonoAndroid、MonoTouch、MonoMacフレームワークを対象にした機能の追加
- パッケージの属性でどのバージョンが必要かを示す“最小のNuGetバージョン”の作成。これは、NuGetパッケージにインストールに必要な最小のNuGetバージョンを指定することができる。この変更は2.5以前のバージョンのNuGetでは、この値に関係なくこの属性セットでパッケージをインストールすることができないことに注意が必要だ。
- パッケージの依存関係は、必要がある時だけ更新されるようになった--以前は必要かどうかにかかわらず、既存のパッケージが更新された
- パッケージの\buildフォルダの使用で、MSビルドターゲットとプロパティファイルの自動インポートを提供する
NuGetのC++サポート
その他の重要な追加機能はNuGetの新たなC++プロジェクトサポートの追加だ。Jeff Handley氏はNuGetのブログで、NuGetはこの追加機能を反映したと公式に説明した:
“NuGetは.NETを含むMicrosoft開発プラットフォームのパッケージマネージャーです。NuGetクライアントツールは、パッケージの生産と消費機能を提供します。NuGet Gallery (nuget.org)は、すべてのパッケージの作成者と消費者が利用するセントラルパッケージリポジトリです。”
NuGetを使うとC++開発者にプロジェクトへのライブラリの追加を管理することができるシステムを提供する。NuGetは適切なプロパティとターゲットを持つファイルを生成するMSBuildを使用する。NuGetに追加されたベネフィットは、基本的にソリューションごとにキャッシュされるため、同じライブラリは複数のプロジェクトをまたいで共有されることである。
NuGetはVS2010とVS2012をサポートし、古いプラットフォームを使っている開発者にも便利なサポートを提供する-- ラウンドドリップ機能を活用したいときのベネフィットを追加した。CoAppプロジェクトの開発者は、C++ベースのNuGetパッケージを作りやすくするためのツールセットのベータリリースを提供する。