英語で読む

次の方法で共有


NuGet 1.4 リリース ノート

NuGet 1.3 リリース ノート | NuGet 1.5 リリース ノート

NuGet 1.4 は 2011 年 6 月 17 日にリリースされました。

機能

更新プログラム パッケージの機能強化

NuGet 1.4 では、更新プログラム パッケージ コマンドに多くの機能強化がが加えられ、ソリューション内の複数のプロジェクト間でパッケージを同じバージョンに維持することが容易になりました。 例えば、パッケージを最新バージョンにアップグレードする場合、そのパッケージがインストールされているすべてのプロジェクトを同じバージョンに更新する必要があるというのは、非常に一般的です。

Update-Packageコマンドにより、次のことが簡単になりました。

1 つのプロジェクト内のすべてのパッケージを更新する

Update-Package -Project MvcApplication1

すべてのプロジェクトのパッケージを更新する

Update-Package PackageId

すべてのプロジェクトのすべてのパッケージを更新する

Update-Package

すべてのパッケージで「安全な」更新を実行する

-Safeフラグは、同じメジャー バージョンとマイナー バージョン コンポーネントを持つバージョンのみに対してアップグレードを制限します。 例えば、バージョン 1.0.0 のパッケージがインストールされており、バージョン 1.0.1、1.0.2、1.1 がフィードで使用可能な場合、-Safeフラグは、パッケージを 1.0.2 に更新します。 -Safeフラグなしでアップグレードすると、パッケージは最新バージョンの 1.1 にアップグレードされます。

Update-Package -Safe

ソリューション レベルでのパッケージの管理

NuGet 1.4 より前のバージョンでは、ダイアログを使用して、複数のプロジェクトにパッケージをインストールするのは面倒でした。 プロジェクトごとに、一度ダイアログを起動する必要がありました。

NuGet 1.4 では、複数のプロジェクトで、同時にパッケージをインストール/アンインストール/更新するためのサポートが追加されています。 ソリューションを右クリックして、[NuGet パッケージの管理] メニュー オプションを選択して起動するだけです。

Solution Level Manage NuGet Packages dialog

ダイアログのタイトル バーには、プロジェクト名ではなく、ソリューション名が表示されます。 パッケージ操作では、操作を適用するプロジェクトのリストが含まれたチェックボックス リストが表示されるようになりました。

Manage NuGet Packages Project Selection

詳細については、「ソリューションのパッケージの管理」を参照してください。

許可されたバージョンへのアップグレード制限

デフォルトでは、パッケージに対してUpdate-Packageコマンドを実行する (または、ダイアログを使用してパッケージを更新する) と、フィード内の最新バージョンに更新されます。 新しいサポートを使用してすべてのパッケージを更新する場合に、特定のバージョン範囲にパッケージをロックしたい場合があります。 アプリケーションがパッケージのバージョン 2.* でのみ動作してバージョン 3.0 以降で動作しないと分かっている場合などです。 パッケージを誤って 3 に更新しないようにするために、NuGet 1.4 では、新しいallowedVersions属性を使用してpackages.configファイルを手動で編集することで、パッケージをアップグレードできるバージョンの範囲を制限するためのサポートが追加されています。

例えば、次の例は、バージョン範囲を 2.0 から 3.0 のSomePackageパッケージの (限定的) パッケージをロックする方法を示しています。 このallowedVersions属性は、バージョン範囲形式を使用して値を受け入れます。

<?xml version="1.0" encoding="utf-8"?>
<packages>
    <package id="SomePackage" version="2.1.0" allowedVersions="[2.0, 3.0)" />
</packages>

1.4 で、パッケージを特定のバージョン範囲にロックするには、手動で編集する必要があることに注意してください。 NuGet 1.5 では、Install-Packageコマンドを使用してこの範囲を配置するためのサポートを追加する予定です。

パッケージ ビジュアライザー

[ツール] ->[ライブラリ パッケージ マネージャー] ->[パッケージ ビジュアライザー] メニュー オプションから起動する新しいパッケージ ビジュアライザーを使用すると、ソリューション内のすべてのプロジェクトとそのパッケージの依存関係を簡単に視覚化できます。

重要な注意: この機能は、Visual Studio の DGML サポートを利用します。 視覚エフェクトの作成は、Visual Studio Ultimate でのみサポートされています。 DGML ダイアグラムの表示は、Visual Studio Premium 以降でのみサポートされます。

Package Visualizer

NuGet ダイアログの自動更新チェック

NuGet の一部のバージョンでは、古いバージョンの NuGet ダイアログでは認識されない.nuspecファイルを介して表現される新機能が導入されています。 1 つの例として、フレームワーク アセンブリを指定するための NuGet 1.4 への導入があります。 したがって、最新バージョンの NuGet を使用して、最新の機能を利用してパッケージを使用できるようにすることが重要です。 NuGet の更新がより視覚的にわかりやすくなるように、NuGet ダイアログには、新しいバージョンが使用可能になったら強調表示するロジックが含まれています。

: チェックは、現在のセッションで [オンライン] タブが選択されている場合にのみ行われます。

Manage NuGet Packages dialog with new version available

更新プログラムの自動チェックをオフにするには、[NuGet の設定] ダイアログボックスに移動し、[更新プログラムを自動的に確認する] をオフにします。

NuGet Settings

この機能は NuGet 1.3 に追加されましたが、NuGet 1.4 などの 1.3 への更新プログラムが利用可能になるまでは表示されません。

パッケージ マネージャー ダイアログの改善

  • メニュー名の改善: ダイアログを起動するためのメニューオプションの名前が、わかりやすく変更されました。 メニュー オプションは、[NuGet パッケージの管理] になりました。
  • [詳細] ウィンドウには、最新の更新日が表示されます。[NuGet] ダイアログに [オンライン] タブまたは [更新] タブが選択されている場合に、パッケージの詳細ウィンドウに最新の更新プログラムの日付が表示されます。
  • 表示されるタグの一覧: [Nuget] ダイアログにタグが表示されます。

PowerShell の機能強化

  • 署名済みの PowerShell スクリプト: NuGet には、より制限の厳しい環境での使用を可能にする署名付き PowerShell スクリプトが含まれています。
  • プロンプトのサポート: パッケージ マネージャー コンソールで、$host.ui.Prompt$host.ui.PromptForChoiceコマンドによるプロンプトがサポートされるようになりました。
  • パッケージ ソース名: フラグを使用してパッケージ ソースを指定する場合、パッケージ ソース名の指定が -Source サポートされます。

nuget.exe コマンド ラインの機能強化

  • NuGet カスタム コマンド: nuget.exe は、MEF を使用して、カスタム コマンドで拡張することができます。
  • シンボル パッケージを作成するためのワークフローの簡素化: -Symbolsフラグは、通常の規則ベースのフォルダー構造に適用でき、フォルダー内にソースと.pdbファイルのみを含めることでシンボル パッケージを作成できます。
  • 複数のソースの指定: NuGet install コマンドは、セミコロンの区切り文字としての使用や、-Sourceの複数回の指定など、複数のソースを指定できます。
  • プロキシ認証のサポート: NuGet 1.4 では、認証を必要とするプロキシの背後で NuGet を使用するときにユーザー認証情報の入力を求めるためのサポートが追加されています。
  • nuget.exe 破壊的変更の更新: nuget.exe が自身を更新するには、-Selfフラグが必要になりました。 nuget.exe Updatepackages.configファイルへのパスを受け取り、パッケージの更新を試みるようになりました。 この更新プログラムは、** プロジェクト ファイルの内容の更新、追加、削除をしないという点で制限されていることに注意してください。 ** パッケージ内で PowerShell スクリプトを実行します。

nuget.exe を使用しているパッケージのプッシュに対する NuGet サーバーのサポート

NuGet には、NuGet.ServerNuGet パッケージを介して軽量の Web ベースの NuGet リポジトリをホストする簡単な方法が含まれています。 NuGet 1.4 では、軽量サーバーは nuget.exe を使用しているパッケージのプッシュと削除をサポートしています。 NuGet.Serverの最新バージョンが、新しいappSettingを、apiKeyという名前で追加します。 キーが省略された、または空白のままの場合は、フィードへのパッケージのプッシュは無効になります。 apiKey を値 (理想的には強力なパスワード) に設定すると、nuget.exe を使用して、パッケージをプッシュできます。

<appSettings>
    <!-- Set the value here to allow people to push/delete packages from the server.
            NOTE: This is a shared key (password) for all users. -->
    <add key="apiKey" value="" />
</appSettings>

Windows 電話ツール「Mango」エディションのサポート

NuGet は、「Mango」向けの Windows 電話ツールのリリース候補バージョンでサポートされるようになりました。 現在、Windows 電話ツールは、Visual Studio 拡張情報マネージャーをサポートしていないため、Windows 電話ツール用の NuGet をインストールするには、VSIX を手動でダウンロードして実行することが必要となる場合があります。

Windows 電話ツール向けの NuGet をアンインストールするには、次のコマンドを実行します。

vsixinstaller.exe /uninstall:NuPackToolsVsix.Microsoft.67e54e40-0ae3-42c5-a949-fddf5739e7a5

バグの修正

NuGet 1.4 では、合計 88 件の作業項目が修正されました。 そのうち 71 件が、バグとしてマークされました。

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

注目すべきバグ修正:

  • [Issue 603](http://nuget.codeplex.com/workitem/603): 異なるリポジトリ間のパッケージの依存関係は、特定のパッケージソースを指定すると適切に解決されます。
  • [Issue 1036](http://nuget.codeplex.com/workitem/1036): ビルド後のイベントにNuGet Pack SomeProject.csprojを追加しても、無限ループが発生しなくなりました。
  • [Issue 961](http://nuget.codeplex.com/workitem/961): -Sourceフラグは相対パスをサポートします。

NuGet 1.4 の更新

NuGet 1.4 のリリース後まもなくして、修正すべき重要な問題が複数見つかりました。 この 1.4 への更新に特定されたバージョン番号は 1.4.20615.9020 です。

バグの修正

  • [Issue 1220](http://nuget.codeplex.com/workitem/1220): 更新プログラム パッケージは、複数のプロジェクトがある場合には、すべてのプロジェクトで install.ps1/uninstall.ps1 を実行するわけではありません
  • [Issue 1156](http://nuget.codeplex.com/workitem/1156): パッケージ マネージャー コンソール が W2K3/XP で行き詰まって停止してしまいます (PowerShell 2 がインストールされていない場合)