Delen via


NuGet-pakketten publiceren

Zodra u een NuGet-pakket hebt gemaakt en een .nupkg-bestand hebt, kunt u het pakket openbaar of privé beschikbaar maken voor andere ontwikkelaars. In dit artikel wordt beschreven hoe u openbare pakketten wereldwijd kunt delen via nuget.org.

U kunt privépakketten ook beschikbaar maken voor alleen een team of organisatie door ze te hosten op een bestandsshare, een privé NuGet-server of een opslagplaats van derden, zoals myget, ProGet, Nexus Repository of Artifactory. Zie Uw eigen NuGet-feeds hosten voor meer informatie. Zie Pakketten publiceren naar NuGet.org voor publicatie met Azure Artifacts.

Publiceren naar nuget.org

Als u op nuget.org wilt publiceren, meldt u zich aan bij nuget.org met een Microsoft-account en gebruikt u dit om een gratis nuget.org-account te maken. Volg de instructies bij Een nieuw afzonderlijk account toevoegen.

Schermopname van de NuGet-aanmeldingskoppeling.

Zodra u een account hebt, kunt u een pakket publiceren naar nuget.org met behulp van de nuget.org webportal, de dotnet CLI of de NuGet CLI versie 4.1.0 of hoger. U kunt ook pakketten publiceren via Azure Pipelines.

Uploaden naar de nuget.org-webportal

Een pakket uploaden naar de nuget.org website:

  1. Selecteer Uploaden in het bovenste menu in nuget.org, blader naar het pakket op uw computer en selecteer Openen.

    Schermopname van het dialoogvenster Uploaden op nuget.org

    Als de pakket-id al bestaat op nuget.org, krijgt u een foutmelding. Wijzig de pakket-id in uw project, pak het opnieuw uit en probeer het opnieuw te uploaden.

  2. Als de pakketnaam beschikbaar is, wordt de sectie Verifiëren geopend, zodat u de metagegevens uit het pakketmanifest kunt bekijken. Als u een leesmij-bestand in uw pakket hebt opgenomen, selecteert u Voorbeeld om ervoor te zorgen dat alle inhoud correct wordt weergegeven.

    Als u een van de metagegevens wilt wijzigen, bewerkt u het projectbestand of het .nuspec-bestand , herbouwt, herpakt en uploadt u het opnieuw.

  3. Wanneer alle informatie gereed is, selecteert u Verzenden.

Push uitvoeren met behulp van een opdrachtregel

Als u pakketten wilt pushen naar nuget.org met een opdrachtregel, kunt u ofwel dotnet.exe v4.1.0 of hoger gebruikennuget.exe, waarmee de vereiste NuGet-protocollen worden geïmplementeerd. Zie NuGet-protocollen voor meer informatie.

Als u een van beide opdrachtregels wilt gebruiken, moet u eerst een API-sleutel ophalen uit nuget.org.

Maak een API-sleutel.

  1. Meld u aan bij uw nuget.org-account of maak een account als u er nog geen hebt.

  2. Selecteer uw gebruikersnaam in de rechterbovenhoek en selecteer vervolgens API-sleutels.

  3. Selecteer Maken en geef een naam op voor uw sleutel.

  4. Selecteer onder Bereiken selecteren, Push.

  5. Voer * in onder Selecteer Packages>Glob Pattern.

  6. Klik op Creëren.

  7. Selecteer Kopiëren om de nieuwe sleutel te kopiëren.

    Schermopname van de nieuwe API-sleutel met de koppeling Kopiëren.

Belangrijk

  • Bewaar uw API-sleutel altijd een geheim. De API-sleutel is vergelijkbaar met een wachtwoord waarmee iedereen namens u pakketten kan beheren. Verwijder uw API-sleutel of genereer deze opnieuw als deze per ongeluk wordt weergegeven.
  • Sla uw sleutel op een veilige locatie op, omdat u de sleutel later niet meer kunt kopiëren. Als u terugkeert naar de pagina api-sleutel, moet u de sleutel opnieuw genereren om deze te kopiëren. U kunt de API-sleutel ook verwijderen als u pakketten niet meer wilt pushen.

Scoping stelt u in staat om afzonderlijke API-sleutels te maken voor verschillende doeleinden. Elke sleutel heeft een vervaltijd en kunt u de sleutel toepassen op specifieke pakketten of glob-patronen. U kunt ook elke sleutel opgeven voor specifieke bewerkingen: nieuwe pakketten en pakketversies pushen, alleen nieuwe pakketversies pushen of de lijst opheffen.

Door middel van scoping kunt u API-sleutels maken voor verschillende personen die pakketten voor uw organisatie beheren, zodat ze alleen de machtigingen hebben die ze nodig hebben.

Voor meer informatie, zie gescope API-sleutels.

De dotnet CLI gebruiken

Voer in de map met het .nupkg-bestand de volgende opdracht uit. Geef de bestandsnaam van .nupkg op en vervang de sleutelwaarde door uw API-sleutel.

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

De uitvoer toont de resultaten van het publicatieproces:

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.

Zie dotnet nuget push voor meer informatie.

Opmerking

Als u wilt voorkomen dat uw testpakket live is op nuget.org, kunt u pushen naar de nuget.org testsite op https://int.nugettest.org. Houd er rekening mee dat pakketten die zijn geüpload naar int.nugettest.org mogelijk niet behouden blijven.

De NuGet CLI gebruiken

  1. Voer bij een opdrachtprompt de volgende opdracht uit, waarbij u <your_API_key> vervangt door de sleutel die u hebt verkregen van nuget.org.

    nuget setApiKey <your_API_key>
    

    Met deze opdracht wordt uw API-sleutel opgeslagen in uw NuGet-configuratie, zodat u de API-sleutel niet opnieuw hoeft in te voeren op dezelfde computer.

    Opmerking

    Deze API-sleutel wordt niet gebruikt voor verificatie met privéfeeds. Om referenties voor authenticatie met deze bronnen te beheren, raadpleegt u de nuget-sources-opdracht.

  2. Gebruik de volgende opdracht om het pakket te pushen:

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

Publiceren met Azure Pipelines

U kunt pakketten pushen naar nuget.org met Azure Pipelines als onderdeel van uw CI/CD-proces (continuous integration/continuous deployment). Zie NuGet-pakketten publiceren met Azure Pipelines voor meer informatie.

Een ondertekend pakket publiceren

Als u een ondertekend pakket wilt verzenden, moet u eerst het certificaat registreren dat u hebt gebruikt om het pakket te ondertekenen. Als u niet aan de ondertekende pakketvereisten voldoet, nuget.org het pakket weigert.

Limieten voor pakketgrootte

Nuget.org heeft een pakketgroottelimiet van ongeveer 250 MB. Wanneer een pakket dat deze limiet overschrijdt wordt geüpload, wordt de volgende fout weergegeven:

Het pakketbestand overschrijdt de groottelimiet. Probeer het opnieuw.

Als een dergelijk pakket vanaf de opdrachtregel wordt gepusht, wordt de volgende uitvoer geproduceerd:

  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.).

Als u deze fouten krijgt, kunt u overwegen de inhoud van het pakket te herzien om de grootte ervan te verkleinen. Als u foutopsporingssymbolen in uw pakket inpakt, kunt u deze afzonderlijk publiceren. Andere assets kunnen afzonderlijk worden gepubliceerd als een of meer afhankelijkheidspakketten om ze te verspreiden in kleinere segmenten.

Pakketvalidatie en indexering

Pakketten die naar nuget.org worden gepusht, ondergaan verschillende validaties, zoals viruscontroles en bestaande pakketten worden periodiek gescand. Wanneer het pakket alle validatiecontroles doorstaat, kan het even duren voordat het wordt geïndexeerd en weergegeven in de zoekresultaten. Terwijl het pakket wordt geïndexeerd, wordt het weergegeven onder Niet-vermelde pakketten en ziet u het volgende bericht op de pakketpagina:

Schermopname van een bericht dat aangeeft dat een pakket nog niet is gepubliceerd.

Zodra validatie en indexering zijn voltooid, ontvangt u een e-mailbericht dat het pakket is gepubliceerd. Als het pakket een validatiecontrole mislukt, wordt de pakketpagina bijgewerkt om de bijbehorende fout weer te geven en ontvangt u een e-mailmelding.

Pakketvalidatie en indexering duurt meestal minder dan 15 minuten. Als het publiceren van pakketten langer duurt dan verwacht, controleert u nuget.org status op status.nuget.org. Als alle systemen operationeel zijn en het pakket niet binnen een uur is gepubliceerd, neemt u contact op met nuget.org via de koppeling Contact opnemen op de pakketpagina.

Als u de pakketstatus wilt zien, selecteert u Pakketten beheren onder uw accountnaam rechtsboven in nuget.org en selecteert u het pakket in gepubliceerde pakketten of niet-vermelde pakketten.

Pakketeigenaren beheren op nuget.org

Pakketeigenaren hebben volledige machtigingen voor het pakket, waaronder het toevoegen en verwijderen van andere eigenaren en publicatie-updates.

Hoewel het .nuspec-bestand van het NuGet-pakket de auteurs van het pakket definieert, gebruikt nuget.org die metagegevens niet om het eigendom te definiëren. In plaats daarvan wijst nuget.org eigendom toe aan de persoon die het pakket publiceert, ofwel de aangemelde gebruiker die het pakket heeft geüpload, of de gebruiker van wie de API-sleutel is gebruikt met dotnet push, nuget SetApiKeyof nuget push.

Het eigendom van een pakket overdragen:

  1. Meld u aan bij nuget.org met het account dat momenteel eigenaar is van het pakket.

  2. Selecteer uw accountnaam rechtsboven, selecteer Pakketten beheren en vouw Gepubliceerde pakketten uit.

  3. Selecteer het pakket dat u wilt beheren en selecteer aan de rechterkant van de pakketpagina het pakket beheren.

  4. Selecteer Eigenaren op de pagina pakketbeheer.

  5. Ga in dat geval op een van de volgende manieren te werk:

    • Selecteer Verwijderen om de huidige eigenaar te verwijderen.

    • Voeg een eigenaar toe onder Eigenaar toevoegen door de gebruikersnaam en een bericht in te voeren en Toevoegen te selecteren.

      Met deze actie wordt een e-mail naar de nieuwe mede-eigenaar verzonden met een bevestigingskoppeling. Zodra dit is bevestigd, heeft die persoon volledige machtigingen om eigenaren toe te voegen en te verwijderen. Zolang het niet bevestigd is, toont de sectie Huidige eigenaren nog lopende goedkeuring voor die persoon.

Als u het eigendom wilt overdragen, bijvoorbeeld wanneer het eigendom verandert of een pakket onder het verkeerde account wordt gepubliceerd, voegt u de nieuwe eigenaar toe. Zodra ze het eigendom hebben bevestigd, kunnen ze de oude eigenaar uit de lijst verwijderen.

Als u eigendom wilt toewijzen aan een bedrijf of groep, maakt u een nuget.org-account met een e-mailalias die doorstuurt naar de juiste teamleden. Verschillende Microsoft-ASP.NET-pakketten zijn bijvoorbeeld mede-eigendom van de Microsoft - en aspnet-accounts .

Soms heeft een pakket mogelijk geen actieve eigenaar. De oorspronkelijke eigenaar heeft bijvoorbeeld het bedrijf verlaten dat het pakket heeft geproduceerd. Als u de rechtmatige eigenaar van een pakket bent en opnieuw eigenaar moet worden, gebruikt u het contactformulier op nuget.org om uw situatie uit te leggen aan het NuGet-team. Het team volgt een proces om uw eigendom te verifiëren, inclusief het zoeken naar de bestaande eigenaar en kan u een nieuwe uitnodiging sturen om de eigenaar van het pakket te worden.

Volgende stappen