SourceChord

C#とXAML好きなプログラマの備忘録。最近はWPF系の話題が中心です。

Nugetでパッケージを作ってみる

Nugetパッケージを作ってみたので、作り方を少しメモしときます。
実際にやってみると、思ってたよりだいぶ簡単に作れそうです。

Nugetのパッケージを作るには、以下の二通りの方法があります。

どちらの方法からでも、.nupkgという形式のファイルが出来上がります。

こいつをNugetギャラリーにアップロードして公開することもできますが、 そこまでせず、自分のローカルPC上にファイルを置いて、そこをプライベートなリポジトリとして使うこともできます。

今回は、このローカルPC上にファイルを配置しておく方の使い方を試してみました。

参考リンク

http://www.slideshare.net/kiyokura/nuget-16200386
http://www.buildinsider.net/enterprise/nugetprivate/01

↓ちょっと前の記事ですが、この動画を見れば、gui版のだいたいの使い方がわかると思います。
http://blogs.msdn.com/b/chack/archive/2013/03/25/visual-studio-spirit-aspnet-nuget.aspx

準備

まずは準備。 https://www.nuget.org/

以下のページからNuget.exeをダウンロードしてきます。
https://dist.nuget.org/index.html

このexeはただのコマンドラインツールなので、はじめのうちは以下のNuGet Package ExplorerというGUIツールもダウンロードして使いながら慣れていけばよいのかな、と思います。 ↓のページの「click here and you're done」というとこのリンクからインストールできます。
https://docs.nuget.org/Create/Using-a-Gui-to-build-packages

ClickOnceでのインストールがイヤという場合には、↓からzip圧縮された実行ファイル類をダウンロードできます。
https://npe.codeplex.com/releases/view/68211

作ってみる

一応、公式のドキュメントはこちら。 https://docs.nuget.org/create

guiから作ってみる

手始めに、NuGet Package Explorerを使って作ってみます。

WPF用にBindableBaseやRelayCommandなど、毎度使う各種基底クラスやヘルパークラス類を、Nugetパッケージとしてまとめてみました。
↓こんな感じのパッケージ。
f:id:minami_SC:20160207144631p:plain

細かい作り方は、参考リンクに上げた動画が詳しいので、ここでは省略。
これを保存すると、.nupkg形式のファイルを作ることができます。

基底の名前空間の利用

ちなみに、ライブラリの参照を加えるのではなく、ここのサンプルのようにコードをプロジェクトに追加する場合には、 Nugetパッケージ利用側のプロジェクトの名前空間に置き換えたい、という場合もあるかもしれません。

そんな時には、ファイル名を「元のファイル名.pp」という名前にしておき、ファイル内の置換したい部分に、$rootnamespace$というキーワードを入れておくと、その部分がプロジェクトの基底の名前空間に置換されます。

ローカル環境のギャラリー

nugetは通常は、インターネット上のnugetギャラリーからパッケージの取得を行います。

VisualStudioのオプションから、以下のようにパッケージ取得元にローカルのフォルダを追加します。
f:id:minami_SC:20160207144659p:plain

こうすると、Nugetパッケージマネージャから参照できるようになります。
f:id:minami_SC:20160207144802p:plain

こんな風にローカルPCのフォルダに自分用のプライベートなNugetパッケージ作って置いておくのも便利かも。
職場とかだったら、共有フォルダに.nupkg保管場所を作って、開発チーム内のローカルなNugetギャラリーとして共通ライブラリなどの管理するのもよさそうですね。