NuGetパッケージを作成する。Visual Studioで。
はじめに
自分で作った便利なライブラリをみんなにも使ってほしい、と思ったらNuGetパッケージとしてギャラリーに公開できるのでやってみましょう。
作り方は簡単、Visual Studioからです。
Visual Studioが便利すぎて、Visual Studioがなくなったら何もできないレベルになってしまいそうで怖いです。
今回の内容は公式のこちらを御覧ください。
特に新しい内容ではなく、私の備忘録です。
クラスライブラリを作成
まずは何は無くともVisual Studioからクラスライブラリ(.NET CoreでもStandardでも何でも)
のプロジェクトを作成します。
テストであれば、適当にパブリックなクラスとメソッドでも作ってビルドが通るようにします。
パッケージの情報の設定
プロジェクトのプロパティが開くので、左側のタブから「パッケージ」タブを選択します。
そして、各項目を適宜入力します。
ソリューションの構成
をRelease
にしてから、ソリューションエクスプローラー
からプロジェクトを右クリックしてパック
を選択します。
これでプロジェクトフォルダ\bin\Release
に.nupkg
ファイルが生成されます。
NuGetギャラリーへの公開
nuget.orgのアカウント作成
nuget.orgへ移動し、アカウントを作成するかサインインしてください。
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スキルも作れるんです。すごいですね!
Author And Source
この問題について(NuGetパッケージを作成する。Visual Studioで。), 我々は、より多くの情報をここで見つけました https://qiita.com/shuhey/items/c20c6629fcbcdb96c9d6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .