Rychlý start: Vytvoření a publikování balíčku pomocí rozhraní příkazového řádku dotnet

V tomto rychlém startu se dozvíte, jak rychle vytvořit balíček NuGet z knihovny tříd .NET a publikovat ho do nuget.org pomocí rozhraní příkazového řádku .NET nebo rozhraní příkazového řádku dotnet.

Požadavky

  • Sada .NET SDK, která poskytuje nástroj příkazového řádku dotnet. Počínaje sadou Visual Studio 2017 se rozhraní příkazového řádku dotnet automaticky nainstaluje s libovolnými úlohami souvisejícími s .NET nebo .NET Core.

  • Bezplatný účet na nuget.org. Postupujte podle pokynů v části Přidání nového individuálního účtu.

Vytvoření projektu knihovny tříd

Existující projekt knihovny tříd .NET můžete použít pro kód, který chcete zabalit, nebo vytvořit jednoduchý projekt následujícím způsobem:

  1. Vytvořte složku s názvem AppLogger.
  2. Otevřete příkazový řádek a přepněte do složky AppLogger . Všechny příkazy rozhraní příkazového řádku dotnet v tomto rychlém startu se ve výchozím nastavení spouštějí v aktuální složce.
  3. Zadejte dotnet new classlib, který vytvoří projekt s názvem aktuální složky.

Další informace najdete v tématu dotnet new.

Přidání metadat balíčku do souboru projektu

Každý balíček NuGet má manifest, který popisuje obsah a závislosti balíčku. V posledním balíčku je manifest soubor .nuspec , který používá vlastnosti metadat NuGet, které zahrnete do souboru projektu.

Otevřete soubor projektu .csproj, .fsproj nebo .vbproj a přidejte do existující <PropertyGroup> značky následující vlastnosti. Použijte vlastní hodnoty pro název a společnost a nahraďte identifikátor balíčku jedinečnou hodnotou.

<PackageId>Contoso.08.28.22.001.Test</PackageId>
<Version>1.0.0</Version>
<Authors>your_name</Authors>
<Company>your_company</Company>

Důležité

Identifikátor balíčku musí být jedinečný napříč nuget.org a dalšími zdroji balíčků. Publikování zpřístupňuje balíček veřejně, takže pokud použijete ukázkovou knihovnu AppLogger nebo jinou testovací knihovnu, použijte jedinečný název, který obsahuje Sample nebo Test.

Můžete přidat libovolné volitelné vlastnosti popsané ve vlastnostech metadat NuGet.

Poznámka:

U balíčků, které vytváříte pro veřejnou spotřebu, věnujte zvláštní pozornost vlastnosti PackageTags . Značky pomáhají ostatním najít váš balíček a pochopit, co to dělá.

Spuštění příkazu pack

Pokud chcete vytvořit balíček NuGet nebo soubor .nupkg z projektu, spusťte příkaz dotnet pack , který také automaticky sestaví projekt.

dotnet pack

Výstup ukazuje cestu k souboru .nupkg :

MSBuild version 17.3.0+92e077650 for .NET
  Determining projects to restore...
  Restored C:\Users\myname\source\repos\AppLogger\AppLogger.csproj (in 64 ms).
  AppLogger -> C:\Users\myname\source\repos\AppLogger\bin\Debug\net6.0\AppLogger.dll
  Successfully created package 'C:\Users\myname\source\repos\AppLogger\bin\Debug\Contoso.08.28.22.001.Test.1.0.0.nupkg'.

Automatické generování balíčku při sestavení

Pokud chcete automaticky spustit dotnet pack pokaždé, když spustítedotnet build, přidejte do souboru projektu následující řádek:<PropertyGroup>

    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>

Publikování balíčku

Publikujte soubor .nupkg do nuget.org pomocí příkazu dotnet nuget push s klíčem rozhraní API, který získáte z nuget.org.

Poznámka:

  • Nuget.org prohledá všechny nahrané balíčky viry a odmítne balíčky, pokud najde nějaké viry. Nuget.org také pravidelně prohledá všechny existující uvedené balíčky.

  • Balíčky, které publikujete do nuget.org, jsou veřejně viditelné ostatním vývojářům, pokud je nezadáte. Pokud chcete balíčky hostovat soukromě, přečtěte si téma Hostování vlastních informačních kanálů NuGet.

Získání klíče rozhraní API

  1. Pokud ho ještě nemáte, přihlaste se ke svému nuget.org účtu nebo si ho vytvořte.

  2. Vyberte své uživatelské jméno v pravém horním rohu a pak vyberte Klíče rozhraní API.

  3. Vyberte Vytvořit a zadejte název klíče.

  4. V části Vybrat obory vyberte Nasdílení změn.

  5. V části Vybrat vzor globu>balíčků zadejte *.

  6. Vyberte Vytvořit.

  7. Vyberte Kopírovat a zkopírujte nový klíč.

    Snímek obrazovky znázorňující nový klíč rozhraní API s odkazem Kopírovat

Důležité

  • Vždy udržujte klíč rozhraní API tajným kódem. Klíč rozhraní API je jako heslo, které umožňuje každému spravovat balíčky vaším jménem. Pokud se klíč rozhraní API omylem odhalí, odstraňte ho nebo vygenerujte znovu.
  • Uložte klíč do zabezpečeného umístění, protože klíč později nemůžete zkopírovat. Pokud se vrátíte na stránku klíče rozhraní API, musíte klíč znovu vygenerovat a zkopírovat ho. Klíč rozhraní API můžete také odebrat, pokud už nechcete nasdílet balíčky.

Rozsah umožňuje vytvořit samostatné klíče rozhraní API pro různé účely. Každý klíč má časový rámec vypršení platnosti a klíč můžete nastavit na konkrétní balíčky nebo vzory globu. Každý klíč také definujete na konkrétní operace: Nasdílíte nové balíčky a verze balíčků, nasdílíte jenom nové verze balíčků nebo zrušíte seznam.

Prostřednictvím oboru můžete vytvořit klíče rozhraní API pro různé uživatele, kteří spravují balíčky pro vaši organizaci, aby měli jenom potřebná oprávnění.

Další informace najdete v tématu o klíčích rozhraní API s vymezeným oborem.

Publikování pomocí dotnet nuget push

Ve složce, která obsahuje soubor .nupkg , spusťte následující příkaz. Zadejte název souboru .nupkg a nahraďte hodnotu klíče klíčem rozhraní API.

dotnet nuget push Contoso.08.28.22.001.Test.1.0.0.nupkg --api-key qz2jga8pl3dvn2akksyquwcs9ygggg4exypy3bhxy6w6x6 --source https://api.nuget.org/v3/index.json

Výstup zobrazuje výsledky procesu publikování:

Pushing Contoso.08.28.22.001.Test.1.0.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  PUT https://www.nuget.org/api/v2/package/
warn : All published packages should have license information specified. Learn more: https://aka.ms/nuget/authoring-best-practices#licensing.
  Created https://www.nuget.org/api/v2/package/ 1221ms
Your package was pushed.

Další informace najdete v tématu dotnet nuget push.

Poznámka:

Pokud se chcete vyhnout živému testovacímu balíčku na nuget.org, můžete nasdílení změn do testovacího webu nuget.org na adrese https://int.nugettest.org. Mějte na paměti, že balíčky nahrané do int.nugettest.org nemusí být zachovány.

Chyby publikování

Chyby z push příkazu obvykle značí problém. Možná jste například zapomněli aktualizovat číslo verze v projektu, takže se pokoušíte publikovat balíček, který už existuje.

Zobrazí se také chyby, pokud je váš klíč rozhraní API neplatný nebo vypršela jeho platnost, nebo pokud se pokusíte publikovat balíček pomocí identifikátoru, který už na hostiteli existuje. Předpokládejme například, že identifikátor AppLogger-test již v nuget.org existuje. Pokud se pokusíte publikovat balíček s tímto identifikátorem, push příkaz zobrazí následující chybu:

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 se zobrazí tato chyba, zkontrolujte, že používáte platný klíč rozhraní API, jehož platnost nevypršela. Pokud ano, znamená to, že identifikátor balíčku již na hostiteli existuje. Pokud chcete chybu opravit, změňte identifikátor balíčku tak, aby byl jedinečný, znovu sestavte projekt, znovu vytvořte soubor .nupkg a zkuste push příkaz zopakovat.

Správa publikovaného balíčku

Po úspěšném publikování balíčku obdržíte potvrzovací e-mail. Pokud chcete zobrazit právě publikovaný balíček, vyberte v nuget.org svoje uživatelské jméno v pravém horním rohu a pak vyberte Spravovat balíčky.

Poznámka:

Může chvíli trvat, než se váš balíček indexuje a zobrazí se ve výsledcích hledání, kde ho můžou najít jiní uživatelé. Během této doby se balíček zobrazí v části Nezasílané balíčky a na stránce balíčku se zobrazí následující zpráva:

Snímek obrazovky zobrazující zprávu publikování, která se zobrazí při nahrání balíčku do nuget.org

Teď jste publikovali balíček NuGet, který nuget.org, který můžou ostatní vývojáři používat ve svých projektech.

Pokud jste vytvořili balíček, který není užitečný (například tento ukázkový balíček vytvořený s prázdnou knihovnou tříd), nebo se rozhodnete, že nechcete, aby byl balíček viditelný, můžete zrušit zařazení balíčku a skrýt ho ve výsledcích hledání:

  1. Jakmile se balíček zobrazí v části Publikované balíčky na stránce Spravovat balíčky, vyberte ikonu tužky vedle výpisu balíčku.

    Snímek obrazovky s ikonou Upravit pro výpis balíčku na nuget.org

  2. Na další stránce zaškrtněte políčko Výpis, zrušte výběr seznamu ve výsledcích hledání a pak vyberte Uložit.

    Snímek obrazovky znázorňující zrušení zaškrtnutí políčka Seznam balíčku na nuget.org

Balíček se teď zobrazí v části Nezasílané balíčky ve správě balíčků a ve výsledcích hledání se už nezobrazuje.

Poznámka:

Abyste zabránili živému provozu testovacího balíčku na nuget.org, můžete odeslat do testovacího webu nuget.org na adrese https://int.nugettest.org. Mějte na paměti, že balíčky nahrané do int.nugettest.org nemusí být zachovány.

Blahopřejeme k vytvoření a publikování prvního balíčku NuGet!

Další videa NuGet najdete na Webu Channel 9 a YouTube.

Další kroky

Další podrobnosti o vytváření balíčků pomocí rozhraní příkazového řádku dotnet:

Získejte další informace o vytváření a publikování balíčků NuGet: