プライベートNuGetリポジトリによる開発環境の改善

Author

プライベート・リポジトリ機能を活用して、開発現場の作業効率を高めようと思います。

開発環境

ここではHTTPベースのプライベート・リポジトリを説明します。ファイル・システムを利用する手法は手軽ですが、HTTPベースであればファイアウォールを超えてアクセスする運用が可能になるので、遠隔地による開発に利用したいためです。

NuGetではNuGet.Serverというサーバー・アプリケーションが提供されており、ASP.NETが動作する環境ならば手軽にプライベート・リポジトリを公開・運用できるます。今回はこの方法を簡単に紹介します。

NuGet.Serverの準備

1・ASP.NET Webアプリケーション・プロジェクトを作成

まずは空のWebアプリケーション・プロジェクトを作成する。

新しいプロジェクト

プロジェクト・テンプレートは「ASP.NET 空の Web アプリケーション」を選択する。

空のプロジェクトテンプレート

2・NuGetで「NuGet.Server」を検索し、インストール

メニューから プロジェクト(P) → NuGetパッケージの管理(N)... を選択するしてNuGet.Serverをインストールする。

NuGet.Serverパッケージ

インストール中にライセンスの同意ダイアログが表示される。問題無ければ同意する。

3・NuGet.Serverを実行

パッケージのインストールが終わったら[Ctrl + F5]キーを押してNuGet.Serverを実行してみよう。問題なければブラウザが起動し、下記のような画面が表示されるはず。

テスト実行画面

Web.config内のXml要素が重複するとエラーになる。エラー表示に従い修正する。問題無い場合は、サーバーを公開するためapi keyをWeb.configに設定する。

<add key="apiKey" value="分かりにくいパスワードを指定" />

4・NuGet.Serverを発行

ソリューションエクスプローラー内のプロジェクトを右クリックして、発行 メニューを選択すると下記のような画面が表示されるので、IIS、FTP、その他を選ぶ。プロファイルを作成しておくと次回が楽になるので、ボタンを プロファイルの作成(P) に変更する。

発行先

発行の設定ウィザードが表示されるので、発行方法を ファイルシステム に、ターゲットの場所を適切なディレクトリに設定して保存する。

発行の設定

保存すると発行画面が表示される。発行ボタンを押す事でターゲットの場所に必要なファイルが作成されるので、IISを利用する場合はIISのルート(デフォルトでは C:\inetpub\wwwroot)に必要なファイルを全てコピーする。

発行

IISサーバーをブラウザーで表示させると、先ほどローカルで実行した画面と同様のページが表示される。

VisualStudioにプライベートNuGetリポジトリを登録

先ほどと同様に、VisualStudioのメニューから プロジェクト(P) → NuGetパッケージの管理(N)... を選択して、右側の歯車のアイコンを選択するとNuGetリポジトリの設定ウィンドウが表示される。

リポジトリ追加

パッケージのソースを指定はVisual Studioのオプション設定ダイアログから行う。+ボタンを押して名前とプライベートサーバーのアドレスを入力後、更新ボタンを押すと利用可能なパッケージソースとして追加される。