Publikování balíčků NuGet

Jakmile vytvoříte balíček NuGet a máte soubor .nupkg , můžete balíček zpřístupnit jiným vývojářům buď veřejně, nebo soukromě. Tento článek popisuje, jak globálně sdílet veřejné balíčky prostřednictvím nuget.org.

Privátní balíčky můžete zpřístupnit jenom týmu nebo organizaci tím, že je hostujete ve sdílené složce, privátním serveru NuGet nebo úložišti třetí strany, jako je myget, ProGet, Nexus Repository nebo Artifactory. Další informace najdete v tématu Hostování vlastních informačních kanálů NuGet. Informace o publikování pomocí Azure Artifacts najdete v tématu Publikování balíčků do NuGet.org.

Publikování do nuget.org

Pokud chcete publikovat nuget.org, přihlaste se k nuget.org pomocí účtu Microsoft a použijte ho k vytvoření bezplatného účtu nuget.org. Postupujte podle pokynů v části Přidání nového individuálního účtu.

Screenshot that shows the NuGet sign in link.

Jakmile máte účet, můžete balíček publikovat do nuget.org pomocí webového portálu nuget.org, rozhraní příkazového řádku dotnet nebo rozhraní příkazového řádku NuGet verze 4.1.0 nebo vyšší. Balíčky můžete publikovat také prostřednictvím Azure Pipelines.

Nahrání na webový portál nuget.org

Nahrání balíčku na web nuget.org:

  1. V horní nabídce v nuget.org vyberte Nahrát , přejděte na balíček v počítači a vyberte Otevřít.

    Screenshot that shows the Upload dialog on nuget.org

    Pokud ID balíčku již v nuget.org existuje, zobrazí se chyba. Změňte identifikátor balíčku v projektu, znovu zabalte a zkuste nahrát znovu.

  2. Pokud je název balíčku k dispozici, otevře se oddíl Ověřit, abyste mohli zkontrolovat metadata z manifestu balíčku. Pokud jste do balíčku zahrnuli soubor readme, vyberte Náhled a ujistěte se, že se veškerý obsah vykresluje správně.

    Pokud chcete změnit některá z metadat, upravte soubor projektu nebo soubor .nuspec , znovu sestavíte, znovu zabalíte a nahrajete znovu.

  3. Až budou všechny informace připravené, vyberte Odeslat.

Nasdílení změn pomocí příkazového řádku

Pokud chcete odesílat balíčky do nuget.org pomocí příkazového řádku, můžete použít buď dotnet.exe nebo nuget.exe v4.1.0 nebo vyšší, které implementují požadované protokoly NuGet. Další informace najdete v tématu Protokoly NuGet.

Pokud chcete použít některý z příkazů, musíte nejprve získat klíč rozhraní API z nuget.org.

Vytvořte klíč 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íč.

    Screenshot that shows the new API key with the Copy link.

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.

Použití rozhraní příkazového řádku dotnet

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.

Použití rozhraní příkazového řádku NuGet

  1. Na příkazovém řádku spusťte následující příkaz a nahraďte <your_API_key> ho klíčem, který jste získali z nuget.org:

    nuget setApiKey <your_API_key>
    

    Tento příkaz ukládá klíč rozhraní API do konfigurace NuGet, takže nemusíte znovu zadávat klíč rozhraní API na stejném počítači.

    Poznámka:

    Tento klíč rozhraní API se nepoužívá k ověřování pomocí privátních informačních kanálů. Pokud chcete spravovat přihlašovací údaje pro ověřování s těmito zdroji, podívejte se na příkaz zdroje NuGet.

  2. Odešlete balíček pomocí následujícího příkazu:

    nuget push YourPackage.nupkg -Source https://api.nuget.org/v3/index.json
    

Publikování s využitím Azure Pipelines

Balíčky můžete odesílat do nuget.org s Azure Pipelines jako součást procesu kontinuální integrace/průběžného nasazování (CI/CD). Další informace najdete v tématu Publikování balíčků NuGet pomocí Azure Pipelines.

Publikování podepsaného balíčku

Pokud chcete odeslat podepsaný balíček, musíte nejprve zaregistrovat certifikát , který jste použili k podepsání balíčku. Pokud nesplňujete požadavky podepsaného balíčku, nuget.org balíček odmítne.

Omezení velikosti balíčku

Nuget.org má limit velikosti balíčku přibližně 250 MB. Při nahrání balíčku, který tento limit překročí, se zobrazí následující chyba:

Soubor balíčku překračuje limit velikosti. Zkuste to prosím znovu.

Pokud je takový balíček vložen z příkazového řádku, vytvoří se následující výstup:

  RequestEntityTooLarge https://www.nuget.org/api/v2/package/ 13903ms
error: Response status code does not indicate success: 413 (The package file exceeds the size limit. Please try again.).

Pokud se vám zobrazují tyto chyby, zvažte změnu obsahu balíčku, aby se zmenšila jeho velikost. Pokud do balíčku zabalíte symboly ladění, zvažte jejich samostatné publikování. Ostatní prostředky je možné publikovat samostatně jako jeden nebo více balíčků závislostí, aby se rozložily do menších bloků dat.

Ověřování a indexování balíčků

Balíčky odsílané do nuget.org procházejí několika ověřeními, jako jsou kontroly virů a existující balíčky se pravidelně kontrolují. Když balíček projde všemi kontrolami ověření, může chvíli trvat, než se indexuje a zobrazí se ve výsledcích hledání. Když se balíček indexuje, zobrazí se v části Nezasílané balíčky a na stránce balíčku se zobrazí následující zpráva:

Screenshot of a message indicating that a package isn't yet published.

Po dokončení ověření a indexování obdržíte e-mail, který se úspěšně publikoval. Pokud balíček selže při kontrole ověření, stránka balíčku se aktualizuje, aby zobrazila přidruženou chybu, a zobrazí se e-mail s oznámením.

Ověření a indexování balíčků obvykle trvá méně než 15 minut. Pokud publikování balíčků trvá déle, než se čekalo, zkontrolujte stav nuget.org na status.nuget.org. Pokud jsou všechny systémy funkční a balíček se během hodiny úspěšně nepublikuje, kontaktujte nuget.org pomocí odkazu Kontaktovat podporu na stránce balíčku.

Pokud chcete zobrazit stav balíčku, vyberte Spravovat balíčky pod názvem vašeho účtu v pravém horním rohu nuget.org a vyberte balíček z publikovaných balíčků nebo nezasílaných balíčků.

Správa vlastníků balíčků na nuget.org

Vlastníci balíčků mají úplná oprávnění k balíčku, včetně přidávání a odebírání dalších vlastníků a publikování aktualizací.

I když soubor .nuspec balíčku NuGet definuje autory balíčku, nuget.org tato metadata nepoužívá k definování vlastnictví. Místo toho nuget.org přiřadí vlastnictví osobě, která balíček publikuje, buď přihlášený uživatel, který balíček nahrál, nebo uživatel, jehož klíč rozhraní API byl použit s dotnet push, nuget SetApiKeynebo nuget push.

Změna vlastnictví balíčku:

  1. Přihlaste se k nuget.org pomocí účtu, který balíček aktuálně vlastní.

  2. V pravém horním rohu vyberte název svého účtu, vyberte Spravovat balíčky a rozbalte publikované balíčky.

  3. Vyberte balíček, který chcete spravovat, a na pravé straně stránky balíčku vyberte Spravovat balíček.

  4. Na stránce správy balíčků vyberte Vlastníci.

  5. Proveďte jednu z následujících akcí:

    • Výběrem možnosti Odebrat odeberete aktuálního vlastníka.

    • Přidejte vlastníka v části Přidat vlastníka tak, že zadáte svoje uživatelské jméno a zprávu a vyberete Přidat.

      Tato akce odešle novému spoluvlastníkovi e-mail s potvrzovací odkaz. Po potvrzení má tato osoba úplná oprávnění k přidávání a odebírání vlastníků. Dokud se to nepotvrdí, část Aktuální vlastníci zobrazí čekající schválení pro danou osobu.

Pokud chcete převést vlastnictví, jako když se vlastnictví změní nebo balíček publikuje pod nesprávným účtem, přidejte nového vlastníka. Jakmile potvrdí vlastnictví, může ze seznamu odebrat starého vlastníka.

Pokud chcete přiřadit vlastnictví společnosti nebo skupině, vytvořte nuget.org účet s e-mailovým aliasem, který se přepošluje příslušným členům týmu. Například různé balíčky Microsoft ASP.NET jsou spoluvlastněny účty Microsoft a aspnet .

V některých případech nemusí mít balíček aktivního vlastníka. Původní vlastník mohl například nechat společnost, která balíček vytvořila. Pokud jste správný vlastník balíčku a potřebujete znovu získat vlastnictví, použijte kontaktní formulář na nuget.org k vysvětlení vaší situace týmu NuGet. Tým se řídí procesem ověření vašeho vlastnictví, včetně pokusu o vyhledání stávajícího vlastníka, a může vám poslat novou pozvánku, která se stane vlastníkem balíčku.

Další kroky