NuGet パッケージの公開Publishing a NuGet package

NuGet パッケージは、パッケージ リポジトリから公開され、使用されます。NuGet packages are published and consumed from package repositories. NuGet.org は最も広く知られ、使用されているリポジトリですが、NuGet パッケージを公開するための場所は数多くあります。While NuGet.org is the most widely known and used repository, there are many places to publish NuGet packages:

  • NuGet.org は、NuGet パッケージの主要なオンライン リポジトリです。NuGet.org is the primary online repository for NuGet packages. NuGet.org にあるパッケージはすべて一般に公開されています。All packages on NuGet.org are publicly available to everyone. Visual Studio の既定のパッケージ ソースは NuGet.org です。また、多くの開発者にとって、やり取りする唯一のパッケージ リポジトリは NuGet.org です。By default, Visual Studio has NuGet.org as a package source and for many developers NuGet.org is the only package repository they'll interact with. NuGet.org は、コミュニティからのフィードバックが必要な安定版パッケージとプレリリース パッケージを公開するのに最適な場所です。NuGet.org is the best place to publish stable packages and pre-release packages that you want community feedback on.

  • MyGet は、オープン ソース プロジェクト用のカスタム パッケージ フィードをサポートしているリポジトリ サービスです。MyGet is a repository service that supports custom package feeds for open-source projects. MyGet のパブリック カスタム フィードは、独自の CI サービスで作成したプレリリース パッケージを公開するのに理想的な場所です。A MyGet public custom feed is an ideal place to publish pre-release packages created by your CI service. MyGet には商用のプライベート フィードも用意されています。MyGet also provides private feeds commercially.

  • ローカル フィード を使用すると、フォルダーをパッケージ リポジトリのように扱い、フォルダー内の *.nupkg ファイルを NuGet からアクセス可能にすることができます。A local feed allows you to treat a folder like a package repository and makes the *.nupkg files in the folder accessible by NuGet. ローカル フィードは、NuGet.org に公開する前に NuGet パッケージをテストする場合に便利です。A local feed is useful for testing a NuGet package before publishing it to NuGet.org.

注意

NuGet.org では、一度アップロードしたらパッケージを削除することはできませんNuGet.org does not allow a package to be deleted once it is uploaded. 一般の UI から見えないようにパッケージを一覧から外すことはできますが、*.nupkg は引き続き復元でダウンロードできます。A package can be unlisted so that it is not publicly visible in the UI but the *.nupkg can still be downloaded on restore. また、nuget.org では、パッケージのバージョンを重複させることはできません。Also, nuget.org does not allow duplicate package versions. エラーを含む NuGet パッケージを修正するには、正しくないパッケージを一覧から外し、バージョン番号をインクリメントして新しいバージョンのパッケージを公開する必要があります。To correct a NuGet package with an error you have to unlist the incorrect package, increment the version number and publish a new version of the package.

✔️ 実行 コミュニティからのフィードバックが必要な安定版パッケージとプレリリース パッケージを公開する場合、NuGet.org を選択します。✔️ DO publish stable packages and pre-release packages you want community feedback on to NuGet.org.

✔️ 検討 継続的インテグレーションによるビルドから、プレリリース パッケージを MyGet のフィードに公開します。✔️ CONSIDER publishing pre-release packages to a MyGet feed from a continuous integration build.

✔️ 検討 ローカル フィードか MyGet を使用して、開発環境でパッケージをテストします。✔️ CONSIDER testing packages in your development environment using a local feed or MyGet. パッケージの動作を確認したら、NuGet.org に公開します。Check the package works then publish it to NuGet.org.

NuGet.org のセキュリティNuGet.org security

悪意のあるユーザーが自分の NuGet アカウントにアクセスし、悪意のあるバージョンのライブラリをアップロードできないことが重要です。It's important that bad actors can't access your NuGet account and upload a malicious version of your library. NuGet.org には、パッケージを公開する際の 2 要素認証と電子メールの通知が用意されています。NuGet.org offers two-factor authentication and email notifications when a package is published. NuGet.org にログインした後、 [Account settings](アカウント設定) ページでこれらの機能を有効にします。Enable these features after logging into NuGet.org on the Account settings page.

代替テキストalt text

✔️ 実行 Microsoft アカウントを使用して NuGet にサインインします。✔️ DO use a Microsoft account to sign in to NuGet.

✔️ 実行 NuGet へのアクセスに対して 2 要素認証を有効にします。✔️ DO enable two-factor authentication for accessing NuGet.

✔️ 実行 パッケージが公開されたときの電子メール通知を有効にします。✔️ DO enable email notification when a package is published.