NuGet 2.7.2 リリース ノート

NuGet 2.7.1 リリース ノート | NuGet 2.8 リリース ノート

NuGet 2.7.2 は、2013 年 11 月 11 日にリリースされました。

注目すべきバグ修正と機能

ライセンス テキスト

長年の間、Microsoft は、Visual Studio の Web アプリケーション プロジェクトの既定のテンプレートの一部として、いくつかの一般的なオープンソース ライブラリ用の NuGet パッケージを含めてきました。 jQuery は、おそらくこの種類のライブラリでは最もよく知られた例です。 製品と共に提供されるコンポーネントに関連するサポート契約により、パッケージのスクリプト ファイルには、パブリック nuget.org ギャラリー上の同じパッケージにあるスクリプト ファイルとは異なるライセンス テキストが含まれています。 このテキストの違いにより、ライセンス テキスト ブロックが異なるため、スクリプト ファイルのコンテンツ ハッシュ値が異なる (プロジェクト内で変更されたものとして扱われる) ため、パッケージの更新が続行されなくなる可能性があります。

この問題を軽減するために、NuGet 2.7.2 では、スクリプト作成者は次のように特別にマークされたセクション内にライセンス テキスト ブロックを含めることができます。

/************** NUGET: BEGIN LICENSE TEXT **************
    * The following code is licensed under the MIT license
    * Additional license information below is informational
    * only.
    ************** NUGET: END LICENSE TEXT ***************/

このブロックを含むコンテンツ ファイルを使用してパッケージを更新する場合、NuGet は NuGet ギャラリーのバージョンとの比較にブロックの内容を考慮しないため、元のコピーと一致するかのようにコンテンツ ファイルを削除および更新することができます。

このブロックは、先頭行と終了行のどこかに "NUGET: BEGIN LICENSE TEXT" および "NUGET: END LICENSE TEXT" というテキストが現れることで識別されます。 他の書式設定要件は存在しないため、言語に関係なくこの機能を任意の種類のテキスト ファイルで使用することができます。

非フレームワーク アセンブリのバインディング リダイレクトの追加

.NET Framework の一部であるアセンブリの場合、NuGet は、パッケージの更新時にアプリケーションの構成ファイルへのバインド リダイレクトの追加をスキップします。 この修正では、NuGet 2.7 では、一部のアセンブリが .NET Framework の一部とは見なされない場合でも、「バインド リダイレクトが追加されていなかった」という回帰に対処します。 NuGet 2.7.2 では、以前の NuGet 2.5 と 2.6 のビヘイビアーが復元され、バインド リダイレクトが追加されます。

Xamarin ツールがインストールされたポータブル ライブラリのインストール

Xamarin の開発ツールがコンピューターにインストールされると、サポートされているフレームワーク構成データが変更されて、既存のターゲット フレームワークの組み合わせと Xamarin フレームワーク間の互換性が指定されます。 バージョン 2.7.2 では、NuGet はこれらの暗黙的な互換性規則を認識するようになったため、Xamarin プラットフォームを対象とする開発者は、Xamarin 互換であるが、パッケージ メタデータ自体で明示的にマークされていないポータブル ライブラリを簡単にインストールできます。

マシン全体の構成設定が優先されます

階層型 Nuget.Config ファイルを使用する場合、ソリューション ルートに最も近い Nuget.Config ファイルに対して repositoryPath キーが適用されていませんでした。 Visual Studio 2013 では、NuGet は、Microsoft and .NET」パッケージ ソースを追加するために、カスタムの Nuget.Config ファイルを %ProgramData%\NuGet\Config\VisualStudio\12.0\Microsoft.VisualStudio.config にインストールします。 その結果、ソリューションでカスタム repositoryPath を使用するための回避策は、マシン レベルの Nuget.Config を削除することでした (これは、"Microsoft と .NET" パッケージ ソースの削除も意味しました)。 NuGet 2.7.2 では、階層的な Nuget.Config ファイルを使用するときに repositoryPath の優先順位規則が優先されるようになりました。

すべての変更点

NuGet 2.7.2 で修正された作業項目の全リストについては、[NuGet Issue Tracker for this release](https://nuget.codeplex.com/workitem/list/advanced?keyword=&status=All&type=All&priority=All&release=NuGet%202.7.2&assignedTo=All&component=All&sortField=LastUpdatedDate&sortDirection=Descending&page=0&reasonClosed=Fixed)を参照してください。