はじめに
NuGetが2011年に公開されてから4年経ち、今ではOSSライブラリやマイクロソフト社の公式ライブラリの配布方法として、すっかり定着しました。そのおかげで、我々は新たにアプリケーションを作成する際、まずはNuGet Galleryから便利なライブラリをインストールするところから始めるようになりました。
ところが組織内の開発に目を移すと、独自ライブラリのdllファイルをファイルサーバーやバージョン管理システム(VCS)のリポジトリで共有する、昔ながらの方法をいまだに多く見ます。これらのやり方では、ライブラリのバージョンアップや配布の際、しばしば問題が起こることもあります。
そこで本稿では実例を紹介しながら、これらの問題に対してNuGetを活用することでどのように対処できるのか紹介していきます。
初回の今回は、チーム開発でのライブラリを効果的に配布する方法を紹介します。
本稿の目的
- チーム開発でこそNuGetを使用すべきということを理解してもらう
- dll直接配布とNuGet配布を対比してメリットを理解してもらう
- NuGetの活用法を、実例をもとに理解してもらう
対象読者
- NuGetを使ったことがある人
- 組織内でライブラリを管理する人
- チームの開発環境、プロセスの整備を行う人
対象範囲外
本稿では以下の事項については説明範囲外とします。参考資料1)~3)のページ等を参照し、事前にやり方を把握しておいてください。
- NuGetの使い方
- NuGetパッケージの作成方法
- NuGetのプライベート・リポジトリの利用方法
ケース1:ライブラリ配布の煩雑さを解消する
システム開発をチームで行う場合、そのシステムに合わせて独自にライブラリを作成することがよくあります。例えば、システムのアーキテクチャを支える「基盤」部分や、複数の機能から使われる業務ロジックなどを提供するものです。
これらの独自ライブラリをチームで共有するためには、各々の開発者にライブラリのdllファイルを配布しなければなりません。
NuGetを使わない従来のdllファイル配布手順は、一例として次のような運用になります(図1)。
1. 提供者がライブラリを共有フォルダーにアップする
ライブラリ開発者の手によって、最新のライブラリをファイルサーバーやWebサーバー等の共有フォルダーにアップします。
2. 利用者がdllファイルを各自のライブラリ用フォルダーにコピーする
利用者は1.でアップされたライブラリをコピー、ダウンロードし、各自のライブラリ用フォルダーに配置します。それは例えば次のような構成となります。
(root) システム開発ルートフォルダー | +- lib ライブラリ用フォルダー | +- src ソースファイル用フォルダー
3. 利用者が2.で配置したライブラリを参照設定する
Visual Studioで自分が担当とする機能のソリューションを開き、ソリューションに含まれる各プロジェクトにて、2.でlibフォルダーに配置したdllファイルの参照設定を行います。この時、libフォルダーは相対パスで指定することが多いです。