しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

NuGet パッケージを作って公開する

ようやく Hatena.Helper で NuGet デビューしましたが、ちょっとパッケージの作り方と NuGet への登録で迷ったので手順をまとめてみます。

まずは NuGet - Home から「NuGet.exe Command Line」をダウンロードします。

NuGet に登録するには拡張子が nupkg のファイルを作成する必要があります。作り方ですが、先程ダウンロードしてきた NuGet.exe に拡張子 nuspec のファイルを食わせると作成してくれます。

ということで nuspec 形式のファイルを作成するのですが、単なる XML ファイルなので Visual Studio やテキストエディタがあれば作成できます。フォーマットは http://nuget.codeplex.com/documentation?title=Nuspec%20Format にすべて載っています。

参考までに Hatena.Helper で使っている nuspec ファイルは以下のようになっています。

<?xml version="1.0" encoding="utf-8" ?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata>
        <id>Hatena.Helper</id>
        <version>1.2</version>
        <title>Hatena.Helper</title>
        <authors>shiba-yan</authors>
        <owners>shiba-yan</owners>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>The Hatena Web Services (Bookmark, Haiku, Profile, Star) Helper for WebMatrix.</description>
        <language>en-US</language>
        <tags>ASPNETWEBPAGES</tags>
    </metadata>
    <files>
        <file src="*.cshtml" target="Content\App_Code" />
    </files>
</package>

nuspec ファイルを作成したらコマンドプロンプトを立ち上げて以下のコマンドを打ち込みます。

nuget pack (作成した nuspec ファイルパス)

例えば Hatena.nuspec ファイルの場合は

nuget pack Hatena.nuspec

と打ち込めば同じディレクトリに nupkg ファイルが作成されます。

NuGet への登録は http://nuget.org/ にログインして、MY ACCOUNT ページに遷移すると Access Key が表示されています。このキーを使って NuGet へ先程作成した nupkg を登録します。

nupkg のアップロードは Web からも可能ですが、今回はコマンドラインから行いましょう。以下のコマンドを打ち込むだけで NuGet へのアップロードと公開が完了します。

nuget push -source http://packages.nuget.org/v1/ (作成した nupkg ファイルパス) (access key)

バージョンアップは nuspec ファイルの version を書き換えて同じように nupkg を作成してアップロードするだけです。思っていた以上に楽でした。