Rychlý Start: vytvoření a publikování balíčku (dotnet CLI)Quickstart: Create and publish a package (dotnet CLI)

Je to jednoduchý proces vytvoření balíčku NuGet z knihovny tříd .NET a jeho publikování na nuget.org pomocí rozhraní příkazového řádku (CLI) dotnet.It's a simple process to create a NuGet package from a .NET Class Library and publish it to nuget.org using the dotnet command-line interface (CLI).

PožadavkyPrerequisites

  1. Nainstalujte .NET Core SDK, která zahrnuje dotnet CLI.Install the .NET Core SDK, which includes the dotnet CLI. Počínaje sadou Visual Studio 2017 se rozhraní příkazového řádku dotnet automaticky nainstaluje se všemi úlohami souvisejícími s .NET Core.Starting in Visual Studio 2017, the dotnet CLI is automatically installed with any .NET Core related workloads.

  2. Zaregistrujte si bezplatný účet na NuGet.org , pokud ho ještě nemáte.Register for a free account on nuget.org if you don't have one already. Když se vytvoří nový účet, pošle se potvrzovací e-mail.Creating a new account sends a confirmation email. Než budete moct nahrát balíček, musíte účet potvrdit.You must confirm the account before you can upload a package.

Vytvořit projekt knihovny třídCreate a class library project

Můžete použít existující projekt knihovny tříd .NET pro kód, který chcete zabalit, nebo vytvořit jednoduchý, a to následujícím způsobem:You can use an existing .NET Class Library project for the code you want to package, or create a simple one as follows:

  1. Vytvořte složku s názvem AppLogger.Create a folder called AppLogger.

  2. Otevřete příkazový řádek a přepněte do složky AppLogger.Open a command prompt and switch to the AppLogger folder.

  3. Zadejte dotnet new classlib, který používá název aktuální složky pro projekt.Type dotnet new classlib, which uses the name of the current folder for the project.

    Tím se vytvoří nový projekt.This creates the new project.

Přidat metadata balíčku do souboru projektuAdd package metadata to the project file

Každý balíček NuGet potřebuje manifest, který popisuje obsah balíčku a závislosti.Every NuGet package needs a manifest that describes the package's contents and dependencies. V konečném balíčku je manifest .nuspec soubor, který je vygenerován z vlastností metadat NuGet, které zahrnete do souboru projektu.In a final package, the manifest is a .nuspec file that is generated from the NuGet metadata properties that you include in the project file.

  1. Otevřete soubor projektu (.csproj) a do existující značky <PropertyGroup> přidejte následující minimální vlastnosti, podle potřeby změňte hodnoty:Open your project file (.csproj) and add the following minimal properties inside the existing <PropertyGroup> tag, changing the values as appropriate:

    <PackageId>AppLogger</PackageId>
    <Version>1.0.0</Version>
    <Authors>your_name</Authors>
    <Company>your_company</Company>
    

    Důležité

    Poskytněte balíčku identifikátor, který je jedinečný v rámci nuget.org nebo libovolného hostitele, který používáte.Give the package an identifier that's unique across nuget.org or whatever host you're using. Pro tento návod doporučujeme, abyste v názvu jako pozdější krok publikování použili "Sample" nebo "test", aby byl balíček veřejně viditelný (i když je to nepravděpodobné, že ho kdokoli bude používat).For this walkthrough we recommend including "Sample" or "Test" in the name as the later publishing step does make the package publicly visible (though it's unlikely anyone will actually use it).

  2. Přidejte všechny volitelné vlastnosti popsané ve vlastnostech metadat NuGet.Add any optional properties described on NuGet metadata properties.

    Poznámka

    Pro balíčky sestavené pro veřejnou spotřebu věnujte zvláštní pozornost vlastnosti PackageTags , protože značky můžou ostatním uživatelům najít váš balíček a pochopit, co to dělá.For packages built for public consumption, pay special attention to the PackageTags property, as tags help others find your package and understand what it does.

Spuštění příkazu PackRun the pack command

Chcete-li vytvořit balíček NuGet (.nupkg soubor) z projektu, spusťte příkaz dotnet pack, který také automaticky vytvoří projekt:To build a NuGet package (a .nupkg file) from the project, run the dotnet pack command, which also builds the project automatically:

# Uses the project file in the current folder by default
dotnet pack

Výstup zobrazuje cestu k souboru .nupkg:The output shows the path to the .nupkg file:

Microsoft (R) Build Engine version 15.5.180.51428 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restore completed in 29.91 ms for D:\proj\AppLoggerNet\AppLogger\AppLogger.csproj.
  AppLogger -> D:\proj\AppLoggerNet\AppLogger\bin\Debug\netstandard2.0\AppLogger.dll
  Successfully created package 'D:\proj\AppLoggerNet\AppLogger\bin\Debug\AppLogger.1.0.0.nupkg'.

Automaticky generovat balíček při sestaveníAutomatically generate package on build

Chcete-li automaticky spouštět dotnet pack při spuštění dotnet build, přidejte do souboru projektu v rámci <PropertyGroup>následující řádek:To automatically run dotnet pack when you run dotnet build, add the following line to your project file within <PropertyGroup>:

<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

Publikování balíčkuPublish the package

Jakmile budete mít soubor .nupkg, publikujete ho na nuget.org pomocí příkazu dotnet nuget push společně s klíčem rozhraní API získaným z nuget.org.Once you have a .nupkg file, you publish it to nuget.org using the dotnet nuget push command along with an API key acquired from nuget.org.

Poznámka

Vyhledávání virů: nahrání do nuget.org všechny balíčky jsou vyhledány viry a odmítnuta, pokud nejsou nalezeny žádné viry.Virus scanning: All packages uploaded to nuget.org are scanned for viruses and rejected if any viruses are found. Všechny balíčky uvedené na nuget.org také jsou pravidelně kontrolovány.All packages listed on nuget.org are also scanned periodically.

Pokud jste vyjmutí ze seznamu je jsou i veřejně viditelné pro ostatní vývojáři balíčky pro publikování na nuget.org.Packages published to nuget.org are also publicly visible to other developers unless you unlist them. Hostujte balíčky soukromě, najdete v článku hostování balíčků.To host packages privately, see Hosting packages.

Získání klíče rozhraní APIAcquire your API key

  1. Přihlaste se k účtu NuGet.org nebo vytvořte účet, pokud ho ještě nemáte.Sign into your nuget.org account or create an account if you don't have one already.

    Další informace o vytvoření účtu najdete v tématu jednotlivé účty.For more information on creating your account, see Individual accounts.

  2. Vyberte své uživatelské jméno (v pravém horním rohu) a pak vyberte klíče rozhraní API.Select your user name (on the upper right), then select API Keys.

  3. Vyberte vytvořit, zadejte název pro svůj klíč, vyberte vybrat obory > Push.Select Create, provide a name for your key, select Select Scopes > Push. Zadejte * pro vzor globa pak vyberte vytvořit.Enter * for Glob pattern, then select Create. (Další informace o oborech najdete níže.)(See below for more about scopes.)

  4. Po vytvoření klíče vyberte Kopírovat a v rozhraní PŘÍKAZového řádku načtěte přístupový klíč, který potřebujete:Once the key is created, select Copy to retrieve the access key you need in the CLI:

    Zkopírování klíče rozhraní API do schránky

  5. Důležitéinformace: Klíč uložte na bezpečném místě, protože ho později nemůžete zkopírovat.Important: Save your key in a secure location because you cannot copy the key again later on. Pokud se vrátíte na stránku klíče rozhraní API, budete muset klíč znovu vygenerovat, abyste ho mohli zkopírovat.If you return to the API key page, you need to regenerate the key to copy it. Klíč rozhraní API můžete odebrat i v případě, že už nechcete nabízet balíčky přes rozhraní příkazového řádku.You can also remove the API key if you no longer want to push packages via the CLI.

Rozsah umožňuje vytvořit samostatné klíče rozhraní API pro různé účely.Scoping allows you to create separate API keys for different purposes. Každý klíč má svůj časový rámec vypršení platnosti a může být vymezen na konkrétní balíčky (nebo vzory glob).Each key has its expiration timeframe and can be scoped to specific packages (or glob patterns). Každý klíč je také vymezen pro konkrétní operace: vložení nových balíčků a aktualizací, pouze nabízených aktualizací nebo oddálení v seznamu.Each key is also scoped to specific operations: push of new packages and updates, push of updates only, or delisting. Pomocí oboru můžete vytvořit klíče rozhraní API pro různé lidi, kteří spravují balíčky pro vaši organizaci tak, aby měli jenom potřebná oprávnění.Through scoping, you can create API keys for different people who manage packages for your organization such that they have only the permissions they need. Další informace najdete v tématu vymezené klíče rozhraní API.For more information, see scoped API keys.

Publikování pomocí příkazu dotnet NuGet pushPublish with dotnet nuget push

  1. Přejděte do složky, která obsahuje soubor .nupkg.Change to the folder containing the .nupkg file.

  2. Spusťte následující příkaz, zadáním názvu balíčku (jedinečné ID balíčku) a nahrazením hodnoty klíče klíčem rozhraní API:Run the following command, specifying your package name (unique package ID) and replacing the key value with your API key:

    dotnet nuget push AppLogger.1.0.0.nupkg -k qz2jga8pl3dvn2akksyquwcs9ygggg4exypy3bhxy6w6x6 -s https://api.nuget.org/v3/index.json
    
  3. dotnet zobrazuje výsledky procesu publikování:dotnet displays the results of the publishing process:

    info : Pushing AppLogger.1.0.0.nupkg to 'https://www.nuget.org/api/v2/package'...
    info :   PUT https://www.nuget.org/api/v2/package/
    info :   Created https://www.nuget.org/api/v2/package/ 12620ms
    info : Your package was pushed.
    

Podívejte se na téma dotnet NuGet push.See dotnet nuget push.

Chyby publikováníPublish errors

Chyby z push příkaz obvykle signalizují potíže.Errors from the push command typically indicate the problem. Například možná jste zapomněli aktualizovat číslo verze ve vašem projektu a pokoušíte se publikovat balíček, který již existuje.For example, you may have forgotten to update the version number in your project and are therefore trying to publish a package that already exists.

Také se zobrazí chyby při pokusu o publikování balíčku pomocí identifikátor, který již existuje v hostiteli.You also see errors when trying to publish a package using an identifier that already exists on the host. Název "AppLogger", například už.The name "AppLogger", for example, already exists. V takovém případě push příkaz dochází k následující chybě:In such a case, the push command gives the following error:

Response status code does not indicate success: 403 (The specified API key is invalid,
has expired, or does not have permission to access the specified package.).

Pokud používáte platný klíč rozhraní API, kterou jste právě vytvořili, tato zpráva znamená konfliktu názvů, která není zcela zřejmé z část "oprávnění" chyby.If you're using a valid API key that you just created, then this message indicates a naming conflict, which isn't entirely clear from the "permission" part of the error. Změnit identifikátor balíčku, sestavte projekt znovu, znovu vytvořit .nupkg souboru a zkuste to znovu push příkazu.Change the package identifier, rebuild the project, recreate the .nupkg file, and retry the push command.

Správa publikovaného balíčkuManage the published package

Váš profil na nuget.org, vyberte spravovat balíčky zobrazíte tu jste právě publikovali.From your profile on nuget.org, select Manage Packages to see the one you just published. Také obdržíte e-mail s potvrzením.You also receive a confirmation email. Všimněte si, že může trvat nějakou dobu váš balíček se zobrazí ve výsledcích hledání tam, kde ostatní můžete najít a indexovat.Note that it might take a while for your package to be indexed and appear in search results where others can find it. Během této doby stránku vašeho balíčku zobrazí následující zpráva:During that time your package page shows the message below:

Tento balíček nebyl dosud indexovány.

A to je všechno!And that's it! Právě jste publikovali svůj první balíček NuGet na nuget.org, které ostatní vývojáři mohou použít ve své vlastní projekty.You've just published your first NuGet package to nuget.org that other developers can use in their own projects.

Pokud v tomto návodu vytvoříte balíček, který není ve skutečnosti užitečné (jako je balíček vytvořen s prázdnou třídu knihovna), měli byste vyjmutí ze seznamu balíček ke skrytí před výsledky hledání:If in this walkthrough you created a package that isn't actually useful (such as a package created with an empty class library), you should unlist the package to hide it from search results:

  1. Na nuget.org, vyberte své uživatelské jméno (pravém horním rohu stránky) a pak vyberte spravovat balíčky.On nuget.org, select your user name (upper right of the page), then select Manage Packages.

  2. Vyhledání balíčku, kterou chcete vyjmutí ze seznamu v části publikováno a vyberte ikonu koše vpravo:Locate the package you want to unlist under Published and select the trash can icon on the right:

    Pro balíčků na nuget.org ikonu koše

  3. Na další stránku, zrušte zaškrtnutí políčka popisek seznamu (název balíčku) ve výsledcích hledání a vyberte Uložit:On the subsequent page, clear the box labeled List (package-name) in search results and select Save:

    Zrušením zaškrtnutí políčka seznam balíčků na nuget.org

Další krokyNext steps

Blahopřejeme k vytvoření prvního balíčku NuGet!Congratulations on creating your first NuGet package!

Pokud chcete prozkoumat další možnosti, které NuGet nabízí, vyberte odkazy níže.To explore more that NuGet has to offer, select the links below.