パッケージの作成と公開Create and publish a package

.NET クラス ライブラリから NuGet パッケージを作成して、nuget.org に公開する簡単なプロセスです。次の手順では、NuGet コマンド ライン インターフェイス (CLI) と Visual Studio を使用して、このプロセスについて説明します。It's a simple process to create a NuGet package from a .NET Class Library and publish it to nuget.org. The following steps walk you through the process using the NuGet command-line interface (CLI) and Visual Studio:

前提条件Pre-requisites

  1. visualstudio.com から Visual Studio 2017 の任意のエディションをインストールします。Install any edition of Visual Studio 2017 from visualstudio.com.

  2. nuget.org/downloads から nuget.exe の最新バージョンをダウンロードし、.exe を自分の PATH 内の場所に保存することで、NuGet CLI ツール nuget.exe をインストールします。Install the NuGet CLI tool, nuget.exe, by downloading the latest version of nuget.exe from nuget.org/downloads, and saving the .exe to a location in your PATH. ダウンロードされるのは、インストーラーではなく、ツールそのものであることに注意してください。Note that the download is the tool itself, not an installer.

  3. パッケージ化するコードに適した .NET クラス ライブラリ プロジェクトを作成します。Create a suitable .NET Class Library project for the code you want to package. プロジェクトがまだない場合は、次の手順で単純なものを作成できます。If you don't already have a project, you can create a simple one as follows:

    1. Visual Studio で、[ファイル]、[新規]、[プロジェクト] の順に選択し、[Visual C#]、[Windows] ノードの順に展開して "クラス ライブラリ" テンプレートを選択し、プロジェクトに AppLogger という名前を付け、[OK] をクリックします。In Visual Studio, choose File > New > Project, expand the Visual C# > Windows node, select the "Class Library" template, name the project AppLogger, and click OK.
    2. 作成されたプロジェクト ファイルを右クリックし、[ビルド] を選択して、プロジェクトが正しく作成されたことを確認します。Right-click on the resulting project file and select Build to make sure the project was created properly. DLL は、デバッグ フォルダー (または代わりにその構成をビルドした場合はリリース フォルダー) 内にあります。The DLL is found within the Debug folder (or Release if you build that configuration instead).

      実際の NuGet パッケージ内ではもちろん、多くの便利な機能を実装して、他の人がその上にアプリケーションをビルドできます。Within a real NuGet package, of course, you'll implement many useful features upon which others can build applications. しかし、このチュートリアルでは、パッケージを作成するには、テンプレートのクラス ライブラリで十分なため、追加のコードを記述することはありません。For this walkthrough, however, you won't write any additional code because a class library from the template is sufficient to create a package.

.nuspec パッケージ マニフェスト ファイルを作成するCreate the .nuspec package manifest file

すべての NuGet パッケージには、その内容と依存関係を説明するマニフェスト —.nuspec ファイル— が必要です。Every NuGet package needs a manifest—a .nuspec file—to describe its contents and its dependencies. nuget spec コマンドを使用してこのファイルを作成し、カスタマイズすることができます。The nuget spec command creates this file for you, which you then customize. この例では、プロジェクト ファイルから .nuspec を作成します。マニフェストは、パッケージの作成ページで説明されているような他の方法でも作成できます。In this example you create the .nuspec from a project file; you can also create the manifest through other means as described on Create a Package.

  1. コマンド プロンプトを開き、プロジェクト ファイル (.csproj) が格納されているフォルダーに移動します。Open a command prompt and navigate to the folder containing your project file (.csproj).

  2. NuGet CLI spec コマンドを実行してマニフェストを生成すると、プロジェクトにちなんだ名前 (AppLogger.nuspec など) が付けられます。Run the NuGet CLI spec command to generate the manifest, which is named after your project, such as AppLogger.nuspec:

    nuget spec
    
  3. テキスト エディターでファイルを開きます。Open the file in a text editor. マニフェストは次のコードのようになります。<token> の形式のトークン ($id$ など) は、パッケージ化プロセス中にプロジェクトの Properties/AssemblyInfo.cs ファイルからの値に置き換えられます。The manifest looks something like the code below, where tokens in the form <token> (such as $id$) are be replaced during the packaging process with values from the project's Properties/AssemblyInfo.cs file. トークンの詳細については、「Creating the .nuspec file」 (.nuspec ファイルの作成) を参照してください。For more details on tokens, see Creating a .nuspec file.

    <?xml version="1.0"?>
    <package>
        <metadata>
        <id>$id$</id>
        <version>$version$</version>
        <title>$title$</title>
        <authors>$author$</authors>
        <owners>$author$</owners>
        <licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl>
        <projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl>
        <iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>$description$</description>
        <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
        <copyright>Copyright 2016</copyright>
        <tags>Tag1 Tag2</tags>
        </metadata>
    </package>
    
  4. nuget.org 全体で一意のパッケージ ID を選択します。パッケージの作成ページに記載されている名前付け規則を使用することをお勧めします。Select a package ID that is unique across nuget.org. We recommend using the naming conventions described in Creating a package. 必ず作成者と説明のタグを更新してください。そうしないと、次の手順でエラーが発生します。Be sure to update the author and description tags or you get an error in the next step. 例として更新された .nuspec ファイルを以下に示します。Here's an updated .nuspec file as an example:

    <?xml version="1.0"?>
    <package>
        <metadata>
        <id>MyCompanyName.MyProductName.MyPackageName</id>
        <version>$version$</version>
        <title>$title$</title>
        <authors>kraigb</authors>
        <owners>kraigb</owners>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>Awesome application logging utility</description>
        <releaseNotes>First release</releaseNotes>
        <copyright>Copyright 2016</copyright>
        <tags>application app logger logging logs</tags>
        </metadata>
    </package>
    

注意

公開用にビルドされたパッケージの場合は、<tags> 要素に特に注意してください。これらのタグは他のユーザーがパッケージを検索して、パッケージの動作を理解するのに役立ちます。For packages built for public consumption, pay special attention to the <tags> element, as these tags help others find your package and understand what it does.

pack コマンドを実行するRun the pack command

プロジェクトから NuGet パッケージ (.nupkg ファイル) を作成するには、pack コマンドを実行します。To build a NuGet package (a .nupkg file) from a project, run the pack command:

nuget pack AppLogger.csproj

このコマンドは、.nuspec ファイルからパッケージの名前とバージョン番号を使用して、AppLogger.1.0.0.0.nupkg を作成します。This command creates AppLogger.1.0.0.0.nupkg using the package name and version number from the .nuspec file. .nuspec ファイルのさまざまなフィールドを既定値から変更していない場合は、コマンドにより警告が発行されます。The command issues warnings if you haven't updated various fields in the .nuspec file from their default values.

パッケージを公開するPublish the package

.nupkg ファイルを作成したら、push コマンドを使用してそれを nuget.org に公開します。Once you have a .nupkg file, you publish it to nuget.org using the push command. または、nuget.org の公開ワークフローを使用できます。(Alternately, you can use the nuget.org publishing workflow.

警告

nuget.org に公開するパッケージは、他の開発者に公開されます。The packages you publish to nuget.org are publicly visible to other developers. パッケージを非公開でホストするには、パッケージのホスティングに関するページを参照してください。To host packages privately, see Hosting packages.

  1. nuget.org に無料のアカウントを作成するか、既にある場合はログインします。Create a free account on nuget.org, or log in if you already have one. 新しいアカウントを作成すると、確認メールが送信されます。Creating a new account sends a confirmation email. パッケージをアップロードするには、その前にアカウントを確認する必要があります。You must confirm the account before you can upload a package.

  2. ログイン後、(右上で) ユーザー名を選択し、[API キー] を選択します。Once logged in, select your user name (on the upper right), then select API Keys.

  3. [作成] を選択し、キーの名前を入力し、[API キー] の下で [スコープの選択]、[プッシュ] の順に選択し、[Glob pattern](glob パターン) に「」を入力し、**[作成]* を選択します。Select Create, provide a name for your key, select Select Scopes > PushUnder API Key, enter * for Glob pattern, then select Create.

  4. キーが作成されたら、[コピー] を選択して、CLI で必要となるアクセス キーを取得します。Once the key is created, select Copy to retrieve the access key you'll need in the CLI:

    API キーをクリップボードにコピーする

    警告

    安全な場所にキーを保存して秘密にします。Save your key in a secure location and keep is a secret. キーが誤って流出した場合は、いつでも再生成することができます。If your key is accidentally revealed, you can always regenerate it at any time. CLI を通じてパッケージをプッシュする必要がなくなった場合は、API キーを削除することもできます。You can also remove the API key if you no longer want to push packages via the CLI.

  5. コマンド プロンプトで、次のコマンドでパッケージ名を指定し、キーを手順 4 でコピーした値に置き換えて、コマンドを実行します。At a command prompt, run the following command, specifying your package name and replacing the key with the value copied in step 4:

    nuget push AppLogger.1.0.0.0.nupkg 47be3377-c434-4c29-8576-af7f6993a54b -Source https://api.nuget.org/v3/index.json
    
  6. nuget.exe によって公開プロセスの結果が表示されます。nuget.exe displays the results of the publishing process:

    Pushing AppLogger.1.0.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/ 6829ms
    Your package was pushed. 
    
  7. nuget.org のプロファイルから、[パッケージの管理] を選択して、公開したパッケージを確認します。From your profile on nuget.org, Select Manage Packages to see the one you just published. 確認メールも送信されます。You also receive a confirmation email. パッケージがインデックス作成され、他のユーザーが検索して検索結果に表示されるようになるまでには、時間がかかる場合があることに注意してください。Note that it might take a while for your package to be indexed and appear in search results where others can find it. この間、パッケージのページに次のメッセージが表示されます。During that time your package page shows the message below:

    このパッケージはまだインデックスされていません。

注意

ウイルス スキャン: nuget.org にアップロードされたすべてのパッケージはウイルス スキャンが行われ、ウイルスが見つかった場合には拒否されます。Virus scanning: All packages uploaded to nuget.org are scanned for viruses and rejected if any viruses are found. nuget.org の一覧にあるすべてのパッケージも定期的にスキャンされます。All packages listed on nuget.org are also scanned periodically.

以上です。And that's it! 最初の NuGet パッケージが nuget.org に公開され、他の開発者がそれを自身のプロジェクトで使用することができます。You've just published your first NuGet package to nuget.org, that other developers can use in their own projects.