きよくらの備忘録

「三日坊主と呼ばせない!日記」改め。主にソフトウェア開発関連の話題。

NuGetでローカルのギャラリーを作って自作ライブラリを管理する

本エントリはVisual Studio Advent Calendar 2012の19日目のエントリです。
怒涛の(?)VSアドベントカレンダー3連続エントリも終わりが見えてきました。


最後はNuGetについての話題とさせてください。

NuGetがVS標準で入るようになりました

VS用のライブラリ・パッケージ・マネージャ『NuGet』、みなさん使っておられるでしょうか?Entity FrameworkもjQueryもNuGet経由で使うのがもはや常識ですよね*1。VS2010ではアドオンとして別途インストールする必要があったNuGetですが、VS2012ではNuGetが標準で入るようになりました。


このNuGet、NuGet Galleryで公開されている多くのライブラリを簡単に利用できるとても素敵なプロダクトですが、さらに自作ライブラリ等をクローズドなローカルのギャラリーで管理することもできます。

今回はその方法を紹介してみたいと思います。

0.NuGetのインストールと更新

VS2010でNuGetが入っていない場合はVSの機能拡張([ツール]-[拡張機能と更新プログラム])からNuGetをインストールしてください。

またNuGetは比較的開発サイクルが早く、頻繁にアップデートがリリースされています*2。アップデートもここからチェック&実行できますので、確認してみてください。



1.まずはNuGetパッケージを作る

まずは、利用したい自作ライブラリを作る必要があります。作るのはとても簡単で、作り方の詳細はNuGet パッケージを作って公開するなどを参考にされると良いと思います(そのうち、私も私なりにまとめたいと思います)。

とりあえず今回は、MyClassLib.dllというdllを入れたパッケージを作ったとして、話を進めていきます。


2.ローカル・ギャラリー用のフォルダを作成して、パッケージを配置

どこでも良いです。例えばドキュメント配下に『My NuGet Gallery』というフォルダを作ってみます*3。フォルダを作ったら、先ほど作ったパッケージを配置します。


3.ローカル・ギャラリーをNuGetが参照するように設定

最後に、NuGetがローカルのギャラリーを参照するように設定します。

まずは、[ツール]-[ライブラリ パッケージ マネージャー]-[パッケージ マネージャーの設定]からオプションを開きます。

[パッケージマネージャー]-[パッケージソース]を表示します。

画面右上の『+』ボタンをクリックしてエントリを追加し、『名前』と『ソース』を書き換えます。『ソース』には、先ほど作ったローカル・ギャラリー用のフォルダを指定します*4。入力が終わったら[Update]をクリックて更新した後、[OK]でダイアログを閉じます。


以上で、設定は終了です。

4.ギャラリーを参照する

プロジェクトを立ち上げNuGetを参照すると、左のツリーに先ほど追加した『オレオレ・ギャラリー』が追加されその中に先ほど配置したライブラリが見つかると思います。

まとめ

試してみていただけるとわかりますが、このローカルのギャラリーでも更新や削除なども公式のギャラリーと同じように機能します。

また、ここではPCのローカルフォルダを指定しましたが、これはネットワーク上のフォルダも指定できます。ですので、例えば部署のファイルサーバ等に配置すれば、部署内の共有ギャラリーなども簡単に作れます。実際に私の職場ではこの方法で社内ライブラリを管理していますが、かなりいい感じで運用できていると思います。



非常に簡単、しかも「VSのTIPSか?」というと若干微妙…かもしれませんが、これにて終わりたいと思います。
明日のVisual Studio Advent Calendar 2012は我らが@さんです!とても楽しみですですね!

*1:多分。少なくともデメリットはない筈。

*2:最近では、12/12にVer 2.2がリリースされています

*3:名前も場所もどこでもいいです

*4:この新規追加方法は、バージョンで若干変わってきています。ver 2.1からこの方式になっていいて、ver 2.0以前では微妙に異なります。また今後どうなるかもわかりません