NuGet 2.6 リリース ノート
NuGet 2.5 リリース ノート | NuGet 2.6.1 for WebMatrix リリース ノート
NuGet 2.6 は、2013 年 6 月 26 日にリリースされました。
本リリースの注目すべき事項
Visual Studio 2013 のサポート。
NuGet 2.6 は Visual Studio 2013 のサポートを提供する最初のリリースとなります。 また、Visual Studio 2012 と同様に、NuGet パッケージ マネージャーの拡張情報は、Visual Studio のすべてのエディションに含まれています。
Visual Studio 2010 と Visual Studio 2012 の両方を引き続きサポートしながら、Visual Studio 2013 向けに可能な限り最高のサポートを提供して、拡張情報サイズをできるだけ小規模に保てるよう、Visual Studio 2013 用に個別の拡張情報を作っており、元の拡張情報は、引き続き Visual Studio 2010 と 2012 の両方を対象とします。
NuGet 2.6 以降で、当社は次のように 2 つの拡張機能を公開します。
- NuGet パッケージ マネージャー (Visual Studio 2010 と 2012 に適用)
- Visual Studio 2013 の NuGet パッケージ マネージャー
この分割により、 nuget.org ホーム ページの「NuGet のインストール」ボタンをクリックすると、[NuGet のインストール] ページが表示され、NuGet クライアントのインストールに関するさまざまな 詳細情報が表示されます。
XDT Web.config 変換のサポート
NuGet クライアントで最もご要望の多かった機能の 1 つは、Visual Studio ビルド構成変換で使用される XDT 変換エンジンを使用して、より強力な XML 変換をサポートすることに関するものとなっています。
2013 年 4 月に、当社は、XDT の NuGet サポートに関する 2 つの大きなお知らせを発表いたしました。 1 つ目は、XDT ライブラリ自体が NuGet パッケージと[open sourced on CodePlex](http://xdt.codeplex.com/)
してリリースされていることです。 この手順により、XDT エンジンは、NuGet クライアントを含む他のオープンソース ソフトウェアによる自由な使用が可能になりました。 2 つ目に発表したのは、NuGet クライアントでの変換において、XDT エンジンの使用をサポートするための計画です。 NuGet 2.6 は、この統合を含んでいます。
しくみ
NuGet の XDT サポートを利用する上で、メカニズムは現在の構成変換機能と似ています。 パッケージのコンテンツ フォルダーに変換ファイルが追加されます。 ただし、構成変換ではインストールとアンインストールの両方に 1 つのファイルが使用されるものの、XDT 変換では、次のファイルを使用することで、これらの両方のプロセスをきめ細かく制御します。
- Web.config.install.xdt
- Web.config.uninstall.xdt
さらに、NuGet は、ファイル サフィックスを使用して、変換に実行するエンジンを決定します。したがって、引き続き、既存の web.config.transforms を使用するパッケージが機能します。 XDT 変換は (web.config だけでなく) 任意の XML ファイル にも適用されるため、プロジェクト内の他のアプリケーションに対してこれを利用できます。
XDT でできること
XDT の最大の強みの 1 つは、 XML DOM の構造を操作するための、シンプルで強力な構文です。 XDT は、単に固定ドキュメント構造を別の構造にオーバーレイするのではなく、単純な属性名の照合、完全な XPath サポートなどの、さまざまな方法を使用して要素を一致させるためのコントロールを提供します。 一致する要素または要素のセットが見つかると、XDT が、要素を操作するための豊富な関数セットを提供します。これは、属性の追加、更新、削除、新しい要素の特定の場所への配置、要素全体とその子の置換または削除を意味します。
マシン ワイド構成
NuGet の大きな強みの 1 つは、そうでなければ大規模な実行可能ファイルまたはライブラリを、統合可能な一連のモジュール式コンポーネントのセットに分割し、最も重要なこととして、個別に保守およびバージョン管理できることです。 しかしながら、この副作用の 1 つは、製品や製品ファミリの従来の考え方がより断片化する可能性があるということです。 NuGet のカスタム パッケージ ソース機能は、パッケージを整理するための 1 つの方法を提供しますが、カスタム パッケージ ソースを単独では検出することができません。
NuGet 2.6 は、パス %ProgramData%/NuGet/Config 内にあるフォルダー階層を検索することであり、NuGet を構成するためのロジックを拡張します。製品インストーラーは、このフォルダー内にカスタム NuGet 構成ファイルを追加して、製品のカスタム パッケージ ソースを登録することができます。 また、フォルダー構造が、IDE の製品、バージョン、さらには SKU のセマンティクスをサポートします。 これらのディレクトリによる設定は、「後入れ優先 (last in wins)」 の優先順位戦略を使用して、次の順序で適用されます。
- %ProgramData%\NuGet\Config*.config
- %ProgramData%\NuGet\Config{IDE}*.config
- %ProgramData%\NuGet\Config{IDE}{Version}*.config
- %ProgramData%\NuGet\Config{IDE}{Version}{SKU}*.config
このリスト内で、{IDE} プレースホルダーは、NuGet が実行されている IDE に固有となっており、そのため、Visual Studio の場合は「VisualStudio」になります。 {Version} プレースホルダーと {SKU} プレースホルダーは、IDE から提供されます (例: "11.0"、"WDExpress"、"VWDExpress"、"Pro"。 また、フォルダー内に、さまざまな *.config ファイルを含めることができます。 そのため、ACME コンポーネント企業は、製品インストーラーの一部として、次のファイル パスを作成することによって Visual Studio 2012 の Professional と Ultimate バージョンでのみ表示されるカスタム パッケージ ソースを追加することができます。
%ProgramData%\NuGet\Config\VisualStudio\11.0\Pro\acme.config
フォルダー構造を使用すると、ソフトウェア インストーラーなどのプログラムにおいて NuGet の構成にコンピューター全体のパッケージ ソースを追加するのが簡単になり、また、NuGet 構成ダイアログも更新され、ユーザー固有 (例: %AppData%/NuGet/NuGet.Config に登録されているなど)、または、マシン全体でパッケージ ソースを登録できます。
この機能は、ファイルが次の場所にインストールされる Visual Studio 2013 によって利用されます。
%ProgramData%\NuGet\Config\VisualStudio\12.0\Microsoft.VisualStudio.config
このファイル内で、「.NET Framework パッケージ」と呼ばれている新しいパッケージ ソースが構成されます。
検索のコンテキスト化
NuGet ギャラリーによって提供されるパッケージ数が、指数関数的に増加し続け、検索の改善は NuGet の優先順位リストの一番上にあります。 NuGet で計画されている機能の 1 つはコンテキスト検索です。つまり、NuGet では、使用している Visual Studio のバージョンと SKU、およびビルドしているプロジェクトの種類に関する情報が、潜在的な検索結果での関連性を判断するための条件として使用されます。
NuGet 2.6 以降では、パッケージがインストールされるたびに、インストールのコンテキストがインストール操作データの一部として記録されます。 検索でも同じコンテキスト情報が送信されるため、NuGet ギャラリーがコンテキストに応じたインストールの傾向によって検索結果を増やせます。 NuGet ギャラリーの今後の更新では、このコンテキスト依存の関連性の強化を有効にする予定です。
直接インストールと依存関係インストールのトラッキング
パッケージ作成者は NuGet ギャラリー内で 提供されるパッケージ統計にますます依存するようになっています。 作成者が求めている重要な欠落データ ポイントの 1 つは、パッケージの直接インストールと依存関係のインストールの違いです。 これまで、NuGet クライアントは、開発者がパッケージを直接インストールしたかどうか、または依存関係を満たすためにインストールされたかどうかについて、インストール操作に関するコンテキストを送信していませんでした。 NuGet 2.6 以降では、そのデータがインストール操作のために送信されるようになりました。 NuGet ギャラリーのパッケージ統計では、そのデータが「-Dependency」サフィックス付きの個別のインストール操作として公開されます。
- インストール
- インストール依存関係
- 更新する
- 更新依存関係
- 再インストール
- 再インストールの依存関係
異なる操作名と合わせて、依存パッケージ ID も、インストール用に記録されます。 NuGet ギャラリーに関する今後の更新では、レポート内でそのデータが公開され、パッケージ作成者が、開発者によるパッケージのインストール方法を全体的に理解できるようになります。
バグの修正
NuGet 2.6 には複数のバグ修正も含まれています。 NuGet 2.6 で修正された作業項目の全リストについては、[NuGet Issue Tracker for this release](https://nuget.codeplex.com/workitem/list/advanced?keyword=&status=Closed&type=All&priority=All&release=NuGet%202.6&assignedTo=All&component=All&sortField=LastUpdatedDate&sortDirection=Descending&page=0&reasonClosed=All)
を参照してください。