読者です 読者をやめる 読者になる 読者になる

SourceChord

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

Nugetギャラリーにライブラリを登録するまでの手順

C# 雑文

WPF用のちょっとしたライブラリを作って、初めてNugetに登録してみました。
ライブラリ自体はまだまだ作りかけの状態ですが、とりあえず登録までの手順をφ(..)メモメモ

参考リンク

http://docs.nuget.org/Create/Creating-and-Publishing-a-Package
https://sakapon.wordpress.com/2013/07/16/nugetpackage/

アカウントの作成

まずは、↓のページからアカウントを作成します。
https://www.nuget.org/

Register/Sign in、という項目をクリックして、そこからアカウントを作ります。
Microsoftアカウントがあれば、そのアカウントに追加情報を登録って感じで行けます。

Nuget.exeの取得

Nugetのページから、最新版のNuget.exeをダウンロードし、適当な場所においてパスを通しておきます。

nuspecファイルの作成

nuspecを作るには、csprojのあるフォルダで、nuget specと実行すればOK。
これで、プロジェクトファイルの情報を元に、nvspecファイルが出来上がります。

こんな感じのxmlファイルが出来上がります。

<?xml version="1.0"?>
<package >
  <metadata>
    <id>$id$</id>
    <version>$version$</version>
    <title>$title$</title>
    <authors>$author$</authors>
    <owners>$author$</owners>
    <licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl>
    <projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl>
    <iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>$description$</description>
    <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
    <copyright>Copyright 2016</copyright>
    <tags>Tag1 Tag2</tags>
  </metadata>
</package>

licenseUrl、projectUrlなどには、サンプル値が入力されてるので適宜書き換えます。
tagsには、nugetギャラリーに登録する際に付けておきたいタグをスペース区切りで入力します。

また、$id$などのような$で括られている部分は、パッケージ作成時にプロジェクトファイルに書かれた値で補間することができます。

プロジェクトのアセンブリ情報修正

プレースフォルダには、プロジェクトファイルの情報が書き込まれます。
プロジェクトのプロパティから、アセンブリ情報を編集しておきましょう。

以下のように、プロジェクトのアセンブリ情報が利用されるようです。

項目名 プロジェクトファイルの対応項目
$id$ アセンブリ
$title (たぶんアセンブリ名)
$version$ アセンブリバージョン情報(AssemblyVersionAttribute)
$author$ 会社
$description$ 説明

パッケージの作成

パッケージは以下のコマンドで作ります。

nuget pack Lighty.csproj -Prop Configuration=Release

注意点は二つ。

  • Nugetコマンドの引数にはcsprojを渡す。
    • .nuspecファイルを渡すと、$でくくられたプレースフォルダが認識されず、パッケージの作成に失敗します。
    • .nuspecファイル指定で作る場合には、プレースフォルダに実際の値を手入力しておく必要があります。
  • -Prop Configuration=Releaseという項目で、パッケージ作成時に使用するソリューション構成を指定します。
    • これをつけ忘れると、デフォルトのDebugビルドになってたりするので要注意。
      • 久しぶりにやったりすると絶対忘れてる気がするので、自分はパッケージ作成用のbatファイルにしておいて、コードと一緒にgitで管理してます。

Nugetギャラリーへの登録

Nugetギャラリーに登録する際にはAPIキーの入力が必要です。
一度以下のコマンドを打っておけばAPIキーが保存されます。

Nuget setApiKey [Nugetの自身のアカウントページで表示されるキー]

続いて以下のコマンドで、作成した.nupkgファイルを指定すれば、Nugetギャラリーに登録できます。

nuget push nupkgファイル

すると、こんな風に自分のライブラリがちゃんとNugetに上がります。

インデックスされるのをしばらく待つと、Nugetのパッケージマネージャからも検索できるようになります。
こうやってNugetのパッケージマネージャから使えるようになると、なんか感慨深いもんがあります♪ f:id:minami_SC:20160219201000p:plain

実際に手を動かしてみると、結構簡単にできるもんなんだなぁ、とビックリしました。