特集:.NET開発の新標準「NuGet」入門(後編)

NuGetをさらに便利に使う方法とパッケージの公開

芝村 達郎
2011/10/14
Page1 Page2 Page3

さらにNuGetを便利に使う

 NuGetは1〜2カ月の間隔でバージョン・アップが行われており、現時点で最新版のバージョン1.5が公開されている。それぞれのバージョンでバグ修正と機能追加が行われているが、その中でもバージョン1.4では大幅な機能追加が行われている。

 ちなみに前編で紹介したUpdate-Packageコマンドを利用した一括更新は1.4での新機能だ。これからパッケージの作成と公開を行う前に、NuGetをさらに便利に使うため、大幅な機能追加が行われたバージョン1.4と最新のバージョンである1.5の新機能について説明を行っておこう。

NuGet 1.4の新機能

 NuGet 1.4では主に以下のような機能が追加されている。

・Update-Packageコマンドの強化

 すでに説明を行った一括更新以外にも、以下のようにパッケージ単位やプロジェクト単位でのアップデート機能や、“安全な”アップデートを行う機能が追加されている。

PM> Update-Package -Project MvcApplication1

指定されたプロジェクト(この例では「MvcApplication1」)にインストールされているパッケージすべてを更新

PM> Update-Package -Safe

安全に更新が可能なパッケージのみ更新

 ここでいう安全に更新が可能なパッケージというのは、インストールされているバージョンと、メジャー&マイナー・バージョンが同じパッケージのことである。つまり、現在のバージョンが「1.0」の場合には「1.0.1」や「1.0.2」へのアップデートは-Safeフラグ付きでも行われるが、「1.1」や「2.0」へのアップデートは-Safeフラグを外さない限り行われることはない。

・ソリューション単位でパッケージを管理

 [Manage NuGet Package]ダイアログでは、プロジェクト単位で操作を行う機能しか存在していなかったが、このバージョンからはソリューション単位での操作を行う機能が追加された。

 ソリューション単位での管理を行うには、ソリューション・エクスプローラに表示されているソリューション項目を右クリックして表示されるメニューから、[Manage NuGet Package]を選択して起動する方法が分かりやすい。

ソリューションを右クリックして表示されるメニューから[Manage NuGet Package]ダイアログを表示する

 表示されるダイアログ自体はまったく違いはないが、[Install]ボタンをクリックするとソリューションに含まれているプロジェクトがダイアログで表示される。このダイアログでプロジェクトを選択できるようになっており、[OK]ボタンをクリックすると選択したプロジェクトのみにパッケージがインストールされる。

パッケージのインストールを行いたいプロジェクトを選択できる

・依存関係のビジュアライズ

 インストールされているパッケージの依存関係を有向グラフとして表示する機能が追加された。(メニューバーの)[ツール]メニューから[Package Visualizer]を選択するだけで表示できるので、jQueryに関連するパッケージの複雑な依存関係も一目で理解することができる。

 以下の画面はjQueryやjQuery Mobileなどがインストールされたプロジェクトでの表示例である。

1つのプロジェクトにインストールされたパッケージの依存関係を表示

・NuGet本体の自動更新チェック

 今まではVisual Studioの[拡張機能マネージャー]から手動で更新を確認するぐらいしか方法がなかったが、NuGet自体が更新チェック機能を持ったことでダイアログの表示中に通知バーが表示され、更新が公開されたことを教えてくれる。

NuGet 1.5の新機能

 NuGet 1.5では主に以下のような機能が追加されている。

・Get-Packageコマンドの強化

 バージョン1.4で追加されたソリューション単位でのパッケージ管理に関連し、Get-Packageコマンドでも、プロジェクト名を指定してインストールされているパッケージの一覧表示が可能になった。

PM> Get-Package -Project MvcApplication1

指定されたプロジェクト(この例では「MvcApplication1」)にインストールされているパッケージを一覧表示

・リリース・ノートの登録/表示

 ダイアログでのパッケージ更新時にリリース・ノートを表示できるようになった。注意してもらいたいのは、 リリース・ノートがパッケージに埋め込まれている場合のみ表示されるということだ。たとえ更新が見つかったとしても、パッケージにリリース・ノートの情報が埋め込まれていない場合には表示されることはない。

アップデートのときに、リリース・ノートが登録されていれば表示される

・プロキシ・サーバ/プライベート・リポジトリでの認証

 主に企業や大学などのネットワークから接続する場合に限られると思うが、認証が必要なプロキシ・サーバの背後にある場合でもNuGetの利用が可能になった。

 接続時に認証が必要な場合は資格情報の入力を促すダイアログが表示されるので、そこで資格情報を入力するとつながるといった仕組みだ。プライベート・リポジトリでの認証も同様に資格情報を入力するダイアログ(次の画面を参照)が表示されるので、そこで資格情報を入力するだけでいい。

認証が必要な場合にはダイアログが表示される
この例ではBasic認証がかけられたプライベート・リポジトリへ接続を行っている。

 認証が必要なプロキシ・サーバに対応したことで、企業のネットワークからNuGetで公開されている数多くのパッケージを利用可能になった。今後、企業内からの利用が進むことも期待できるだろう。

 前述した中に出てきたプライベート・リポジトリとは、個人で自由に作成できる簡易NuGetサーバだ。NuGet galleryのようなユーザー登録や検索などのWebインターフェイスは持っていないが、パッケージの登録やVisual StudioやWebMatrixを利用した検索、インストールといった基本的な操作を行うことができる。ASP.NETプロジェクトを作成して、NuGetで配布されているNuGet.Serverパッケージをインストールするだけで簡単に構築でき、NuGet 1.5からは基本認証とNTLM認証に対応しているので、個人のテスト用途から企業内での利用まで幅広く活用できるはずだ。

 プライベート・リポジトリの構築については、以下の公式ドキュメントも参考にしていただきたい。

 それでは本題であるNuGetパッケージの作成を行っていこう。


 INDEX
  特集:.NET開発の新標準「NuGet」入門(前編)
  .NETで開発モジュール導入が楽々に! NuGet入門
    1.NuGetの概要/利用場面/インストール
    2.ASP.NET MVCで利用する
    3.WebMatrixで利用する
    4.公開されている代表的なパッケージ
 
  特集:.NET開発の新標準「NuGet」入門(後編)
  NuGetをさらに便利に使う方法とパッケージの公開
  1.さらにNuGetを便利に使う
    2.NuGetパッケージの作成
    3.NuGet galleryで公開


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH