nuget.orgにNuGetパッケージを公開/更新してみる

nuget.orgにNuGetパッケージを公開/更新してみる

Clock Icon2023.08.08

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

とある.NETライブラリを作ってnuget.orgに公開しましたので、nuget.orgにNuGetパッケージを公開/更新する方法をまとめます。

NuGetとは?

.NET向けのパッケージマネージャーです。 中央リポジトリ・パブリックホストとしてnuget.orgがあります。

環境

Windows Visual Studio 2022 Community

パッケージ公開

.nupkgの用意

Visual Studio 2022上で行います。

パッケージ設定

プロジェクトプロパティを開き、パッケージセクションまで移動し、必要項目を設定します。 nuget.orgに関連する設定項目としては、パッケージID ~ リリースノート辺りとなります。 また、READMEライセンスの項目を設定することで、nuget.org上でそれらを表示できるようになります。

パッケージング

ソリューション構成をReleaseにします。 ソリューションエクスプローラー上で、パッケージングするプロジェクトを右クリックし、パック

成功しました。

既定では.\bin\release~.x.x.x.nupkgが出力されているはずです。 こいつをnuget.orgにアップロードします。

nuget.orgへのアップロード

nuget.orgにサインイン。

右上のSign Inからサインイン画面へと進み、Microsoftアカウントでサインインします。

Microsoftアカウントをお持ちでない場合は...作成する必要があります。

アップロード

サインインが完了したら、右上に表示されているユーザー名をクリックし、Upload Packagesを選択します。

こちらにアップロードします。

この際、README.mdやライセンス形態の指定がないとWarningが表示されます。 必要に応じて、Visual Studio上でプロジェクトプロパティ>パッケージのREADME, ライセンスの項目を指定しましょう。

最後にアップロード画面最下部のSubmitボタンを押して公開しましょう。

手順は以上となります。

画面に表示されている通り、nuget.org側での検証とインデックス作成が終わると晴れて公開となります。

パッケージ更新

プロジェクトプロパティを開き、パッケージセクションまで移動し、パッケージバージョンの値を変更します。

この際、パッケージIDを変更してしまうとnuget.org上では別パッケージとして認識されます。

公開時と同じようにパックするとバージョンの異なる.nupkgが出力されます。 こいつを公開時と同じようにnuget.orgにアップロードして更新は完了となります。

パッケージ削除

nuget.orgでは公開したパッケージの削除は許可されておらず、「検索結果に表示させない」(非表示にする)ところまでしかできません。 削除したいパッケージに他のライブラリが依存している場合、削除してしまうと他のライブラリが動かなくなってしまうためこのような仕様になっています。

パッケージを非表示にする

右上に表示されているユーザー名をクリックし、Manage Packagesを選択します。

Manage Packages画面のPublished Packagesから非表示にするパッケージの鉛筆アイコンをクリックします。

開いた画面のListingセクションを開き、非表示にするバージョンを選択し、List in search results.のチェックボックスを外してsaveボタンをクリックします。 バージョンごとに上記の操作をする必要があるため、多い場合はNuGet CLIを使ったほうが良いかもしれません。

以上でパッケージの特定バージョンを検索結果から非表示にさせることができます。

まとめ

以上の手順でnuget.orgへ自作.NETパッケージの公開/更新/削除(非表示)が可能となります。お疲れ様でした。

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.