最近、.NETプラットフォームのNuGetパッケージマネージャーは、バージョン1.5の別の更新プログラムを受け取りました。 以下は、新しいバージョンの革新です。
NuGetがプリロードされたプロジェクトテンプレート
新しいASP.NET MVC 3プロジェクトを作成すると、プロジェクトテンプレートに含まれるjQueryライブラリがNuGetパッケージとしてプロジェクトに追加されます。 ASP.NET MVC 3プロジェクトテンプレートには、テンプレートに基づいて新しいプロジェクトが作成されるたびにインストールされるNuGetパッケージのセットが含まれています。 Visual StudioプロジェクトテンプレートにNuGetパッケージを含めるこの機能は、組み込みのNuGet関数になり、 あらゆるタイプのプロジェクトで使用できるようになりました。
この機能の詳細については、この機能の開発者によるこのブログ投稿をご覧ください。
明示的なアセンブリ参照
新しい<references />パッケージ構成要素が追加され、参照が必要なパッケージ内のアセンブリを明示的に指定できるようになりました。 たとえば、次のコードを追加する場合:
<references> <reference file="xunit.dll" /> <reference file="xunit.extensions.dll" /> </references>
その後、プロジェクト内のリンクは、libフォルダー内にいくつあるかに関係なく、xunit.dllとxunit.extensions.dllの2つのアセンブリに対してのみ追加されます。 この説明を省略すると、libフォルダーにあるすべてのアセンブリへのリンクがプロジェクトに追加されます。
この機能の目的は何ですか?
この機能は、設計または開発中に使用されるアセンブリのみをサポートします。 たとえば、コードコントラクトを使用する場合、コントラクトを含むアセンブリは通常のアセンブリと一緒に配置し、Visual Studioからアクセスできるようにする必要がありますが、コントラクトを含むアセンブリはプロジェクトに存在せず、binフォルダーにコピーしないでください。
同様に、XUnitなどの単体テストフレームワークの場合は、独自の補助アセンブリへのアクセスが必要ですが、同時にプロジェクトアセンブリへのリンクのリストから除外する必要があります。
NuSpecからファイルを除外する機能が追加されました
.nuspecファイルの<file>要素を使用して、プロジェクトのマスクで指定されたファイルが含まれていることを示すことができます。 マスクを使用する場合、どのファイルも除外できませんでした。 このアップデートでは、そのような機会が現れました。 たとえば、拡張子が.txtのテキストファイルのうち、いずれか1つを除くすべてをプロジェクトに含めるとします。
<files> <file src="*.txt" target="content\docs" exclude="admin.txt" /> </files>
セミコロンを使用して、いくつかのファイルをリストできます。
<files> <file src="*.txt" target="content\docs" exclude="admin.txt;log.txt" /> </files>
または、マスクを使用して一連のファイルを除外することもできます。
<files> <file src="tools\*.*" target="tools" exclude="*.bak" /> </files>
依存パッケージ削除要求ダイアログ
依存関係があるパッケージの削除中に、NuGetは依存関係に関するアクションをユーザーに要求します:削除するかどうか。
Get-Packageチームの改善
Get-Packageコマンドは、–ProjectNameパラメーターをサポートするようになりました。 たとえば、次のコマンドは、「A」という名前のプロジェクトのインストール済みパッケージのリストを表示します。
Get-Package –ProjectName A
プロキシ認証サポート
認証が必要なプロキシにNuGetを使用する場合、NuGetは必要なデータを要求するようになりました。 このデータを入力すると、NuGetはリモートリポジトリに接続できます。
リポジトリ認証サポート
NuGetは、簡易認証またはNTLM認証が必要なプライベートパッケージリポジトリへの接続をサポートするようになりました。 ダイジェスト認証のサポートは、NuGetの将来のリリースで追加される予定です。
NuGet.orgリポジトリのパフォーマンスの改善
nuget.orgパッケージギャラリーのパフォーマンスにプラスの影響を与えるいくつかの改善を行いました。 パッケージと検索のリストへのアクセスがより高速になりました。
ソリューションダイアログでのプロジェクトのフィルタリング
ソリューションレベルのダイアログ(ソリューションレベルのダイアログ)では、パッケージをインストールするプロジェクトの要求時に、パッケージを適用できるプロジェクトのみが表示されます。
パッケージリリースノート
NuGetパッケージにリリースノートを含めることができるようになりました。 この情報は、パッケージの更新を表示するときにのみ表示されるため、最初のリリース後のパッケージバージョンにのみ追加する必要があります。
パッケージリリースに説明を追加するには、NuSpec構成ファイルの新しい<releaseNotes />メタデータセクションを使用します。
NuSpecの<files />セクションの改善
.nuspecファイルでは、空の<files />要素を使用できるようになりました。これにより、パッケージにファイルを含めないようにNuGetに指示します。
バグ修正
NuGet 1.5では、107個のバグトラッカー要素が修正されて閉じられ、そのうち103個がバグとしてフラグが立てられました。 修正の完全なリストは、 このリンクにあります。