次の方法で共有


NuGet 2.0 リリース ノート

NuGet 1.8 リリース ノート | NuGet 2.1 リリース ノート

NuGet 2.0 は 2012 年 6 月 19 日にリリースされました。

既知のインストールの問題

VS 2010 SP1 を実行している場合は、古いバージョンがインストールされている場合、NuGet をアップグレードしようとしたときにインストール エラーが発生する可能性があります。

回避策は、単に NuGet をアンインストールし、VS 拡張機能ギャラリーからインストールすることです。 詳細については、「 https://support.microsoft.com/kb/2581019 」を参照するか、 VS 修正プログラムに直接アクセスしてください。

注: 拡張機能をアンインストールできない ([アンインストール] ボタンが無効になっている) 場合は、"管理者として実行" を使用して Visual Studio を再起動する必要がある可能性があります。

パッケージの復元の同意に関するこの投稿で説明されているように、NuGet 2.0 では、パッケージの復元をオンラインにしてパッケージをダウンロードできるようにするために同意する必要があります。 パッケージ マネージャー構成ダイアログまたは EnableNuGetPackageRestore 環境変数を使用して同意したことを確認してください。

ターゲット フレームワークによる依存関係のグループ化

バージョン 2.0 以降では、パッケージの依存関係は、ターゲット プロジェクトのフレームワーク プロファイルによって異なる場合があります。 これは、更新された .nuspec スキーマを使用して実現されます。 <dependencies>要素には、一連の<group>要素を含めることができるようになりました。 各グループには、0 個以上の <dependency> 要素と targetFramework 属性が含まれています。 ターゲット フレームワークがターゲット プロジェクト フレームワーク プロファイルと互換性がある場合、グループ内のすべての依存関係が一緒にインストールされます。 例えば次が挙げられます。

<dependencies>
    <group>
        <dependency id="RouteMagic" version="1.1.0" />
    </group>

    <group targetFramework="net40">
        <dependency id="jQuery" />
        <dependency id="WebActivator" />
    </group>

    <group targetFramework="sl30">
    </group>
</dependencies>

グループには 0 個の依存関係を含めることができます。 上記の例では、パッケージが Silverlight 3.0 以降を対象とするプロジェクトにインストールされている場合、依存関係はインストールされません。 パッケージが .NET 4.0 以降を対象とするプロジェクトにインストールされている場合は、jQuery と WebActivator という 2 つの依存関係がインストールされます。 パッケージが、これらの 2 つのフレームワークまたはその他のフレームワークの初期バージョンを対象とするプロジェクトにインストールされている場合、RouteMagic 1.1.0 がインストールされます。 グループ間の継承はありません。 プロジェクトのターゲット フレームワークがグループの targetFramework 属性と一致する場合、そのグループ内の依存関係のみがインストールされます。

パッケージは、 <dependency> 要素のフラット リストの古い形式またはグループの 2 つの形式のいずれかでパッケージの依存関係を指定できます。 <group>形式が使用されている場合、パッケージを 2.0 より前のバージョンの NuGet にインストールすることはできません。

2 つの形式の混在は許可されないことに注意してください。 たとえば、次のスニペットは 無効 であり、NuGet によって拒否されます。

<dependencies>
    <dependency id="jQuery" />
    <dependency id="WebActivator" />

    <group>
        <dependency id="RouteMagic" version="1.1.0" />
    </group>
</dependencies>

ターゲット フレームワークによるコンテンツ ファイルと PowerShell スクリプトのグループ化

アセンブリ参照に加えて、コンテンツ ファイルと PowerShell スクリプトをターゲット フレームワーク別にグループ化することもできます。 ターゲット フレームワークを指定するための lib フォルダー内にあるのと同じフォルダー構造を、 content フォルダーと tools フォルダーに同じ方法で適用できるようになりました。 例えば次が挙げられます。

\content
    \net11
        \MyContent.txt
    \net20
        \MyContent20.txt
    \net40
    \sl40
        \MySilverlightContent.html

\tools
    \init.ps1
    \net40
        \install.ps1
        \uninstall.ps1
    \sl40
        \install.ps1
        \uninstall.ps1

: init.ps1 はソリューション レベルで実行され、個々のプロジェクトに依存しないため、 tools フォルダーのすぐ下に配置する必要があります。 フレームワーク固有のフォルダー内に配置された場合は無視されます。

また、NuGet 2.0 の新機能は、フレームワーク フォルダーを にできることです。その場合、NuGet はアセンブリ参照を追加したり、コンテンツ ファイルを追加したり、特定のフレームワーク バージョンの PowerShell スクリプトを実行したりしません。 上記の例では、フォルダー content\net40 は空です。

タブ補完のパフォーマンスの向上

NuGet パッケージ マネージャー コンソールのタブ補完機能が更新され、パフォーマンスが大幅に向上しました。 タブ キーが押されてから候補のドロップダウンが表示されるまでの遅延が大幅に少なくなります。

バグの修正

NuGet 2.0 には、パッケージの復元の同意とパフォーマンスに重点を置いた多くのバグ修正が含まれています。 NuGet 2.0 で修正された作業項目の完全な一覧については、 [NuGet Issue Tracker for this release](http://nuget.codeplex.com/workitem/list/advanced?keyword=&status=Closed&type=All&priority=All&release=NuGet%202.0&assignedTo=All&component=All&sortField=Votes&sortDirection=Descending&page=0)を参照してください。