NuGetパッケージを作成する。Visual Studioで。


はじめに

自分で作った便利なライブラリをみんなにも使ってほしい、と思ったらNuGetパッケージとしてギャラリーに公開できるのでやってみましょう。
作り方は簡単、Visual Studioからです。
Visual Studioが便利すぎて、Visual Studioがなくなったら何もできないレベルになってしまいそうで怖いです。
今回の内容は公式のこちらを御覧ください。
特に新しい内容ではなく、私の備忘録です。

クラスライブラリを作成

まずは何は無くともVisual Studioからクラスライブラリ(.NET CoreでもStandardでも何でも)のプロジェクトを作成します。
テストであれば、適当にパブリックなクラスとメソッドでも作ってビルドが通るようにします。

パッケージの情報の設定

プロジェクト<プロジェクト名>のプロパティを選択します。

プロジェクトのプロパティが開くので、左側のタブから「パッケージ」タブを選択します。
そして、各項目を適宜入力します。

ソリューションの構成Releaseにしてから、ソリューションエクスプローラーからプロジェクトを右クリックしてパックを選択します。

これでプロジェクトフォルダ\bin\Release.nupkgファイルが生成されます。

NuGetギャラリーへの公開

nuget.orgのアカウント作成

nuget.orgへ移動し、アカウントを作成するかサインインしてください。

次に右上のメニューからAPI Keysを選択します。

Createの項目をクリックし、公式ページの説明に従ってキー名などを入力して、「Create」ボタンを押します。

すると以下のように表示されるので、保管しておいてください。

ではコマンドプロンプト(など)を開き、.nupkgファイルが出力されたbin\Releaseフォルダへ移動します。

そして、公式の説明のとおり以下のコマンドを入力します。

nuget push .nupkgファイル APIキー -Source https://api.nuget.org/v3/index.json

実行するとこんな感じです。

\bin\Release> nuget push .\AlexaPersistentAttributesManager.1.0.0.nupkg APIキー -Source https://api.nuget.org/v3/index.json
Pushing AlexaPersistentAttributesManager.1.0.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  PUT https://www.nuget.org/api/v2/package/
  Created https://www.nuget.org/api/v2/package/ 1636ms
Your package was pushed.

確認

nuget.orgへ移動し、右上のメニューからManage Packagesを選択します。
すると、以下のように先程アップロードしたパッケージが表示されると思います。

また、しばらくしてからnuget.orgでパッケージを検索すると検索結果に出てきます。

もちろん、Visual StudioのNuGetパッケージマネージャーでも検索結果に出てきます。

おわりに

Visual Studioではサーバーサイドからモバイルアプリまで様々なアプリケーションの開発だけでなく、NuGetパッケージの作成も簡単にできてしまうことがわかりました。
Visual Studio廃人になってしまいそうです。
こんなに簡単にパッケージを公開できるので、(自分が)便利(と思う)なライブラリを作ったらどんどん公開するといいとお思います。

ちなみに、今回公開したパッケージは「C#でAlexaスキルを作成する際に、DynamoDBへのデータの格納をちょっぴり楽にする」というニッチなものになっています。

そう、C#でAlexaスキルも作れるんです。すごいですね!