Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Po utworzeniu pakietu NuGet i utworzeniu pliku nupkg możesz udostępnić pakiet innym deweloperom publicznie lub prywatnie. W tym artykule opisano sposób globalnego udostępniania pakietów publicznych za pośrednictwem nuget.org.
Możesz również udostępnić prywatne pakiety tylko zespołowi lub organizacji, hostując je w udziale plików, prywatnym serwerze NuGet lub repozytorium innej firmy, takim jak myget, ProGet, Nexus Repository lub Artifactory. Aby uzyskać więcej informacji, zobacz Hostowanie własnych źródeł danych NuGet. Aby uzyskać informacje na temat publikowania za pomocą usługi Azure Artifacts, zobacz Publikowanie pakietów w NuGet.org.
Publikowanie w usłudze nuget.org
Aby opublikować nuget.org, zaloguj się do nuget.org przy użyciu konta Microsoft i użyj go do utworzenia bezpłatnego konta nuget.org. Postępuj zgodnie z instrukcjami w temacie Dodawanie nowego indywidualnego konta.
Po utworzeniu konta możesz opublikować pakiet na nuget.org przy użyciu witryny nuget.org, interfejsu wiersza polecenia dotnet lub interfejsu wiersza polecenia NuGet w wersji 4.1.0 lub nowszej. Pakiety można również publikować za pośrednictwem usługi Azure Pipelines.
Przekazywanie do portalu internetowego nuget.org
Aby przesłać pakiet do witryny internetowej nuget.org:
Wybierz pozycję Przekaż w górnym menu w nuget.org, przejdź do pakietu na komputerze i wybierz pozycję Otwórz.
Jeśli identyfikator pakietu już istnieje w nuget.org, zostanie wyświetlony błąd. Zmień identyfikator pakietu w projekcie, ponownie spakuj i spróbuj przekazać ponownie.
Jeśli nazwa pakietu jest dostępna, zostanie otwarta sekcja Weryfikuj , aby można było przejrzeć metadane z manifestu pakietu. Jeśli w pakiecie dołączono plik readme , wybierz pozycję Podgląd , aby upewnić się, że cała zawartość jest poprawnie renderowana.
Aby zmienić dowolne metadane, zmodyfikuj plik projektu lub plik nuspec , ponownie skompiluj, ponownie spakuj i przekaż ponownie.
Gdy wszystkie informacje są gotowe, wybierz pozycję Prześlij.
Wypychanie przez wiersz polecenia
Aby wypchnąć pakiety do nuget.org za pomocą wiersza polecenia, można użyć polecenia dotnet.exe lub nuget.exe w wersji 4.1.0 lub nowszej, co implementuje wymagane protokoły NuGet. Aby uzyskać więcej informacji, zobacz Protokoły NuGet.
Aby użyć dowolnego wiersza polecenia, najpierw musisz pobrać klucz interfejsu API z nuget.org.
Tworzenie klucza interfejsu API
Zaloguj się do konta nuget.org lub utwórz konto , jeśli jeszcze go nie masz.
Wybierz swoją nazwę użytkownika w prawym górnym rogu, a następnie wybierz pozycję Klucze interfejsu API.
Wybierz pozycję Utwórz i podaj nazwę klucza.
W obszarze Wybierz zakresy wybierz pozycję Prześlij.
W obszarze Wybierz pakiety>wzorzec globu, wprowadź *.
Wybierz Utwórz.
Wybierz pozycję Kopiuj , aby skopiować nowy klucz.
Ważne
- Zawsze przechowuj klucz interfejsu API jako klucz tajny. Klucz interfejsu API jest jak hasło, które umożliwia każdemu zarządzać pakietami w Twoim imieniu. Usuń lub ponownie wygeneruj klucz interfejsu API, jeśli zostanie on przypadkowo ujawniony.
- Zapisz klucz w bezpiecznej lokalizacji, ponieważ nie można ponownie skopiować klucza później. Jeśli wrócisz do strony klucza interfejsu API, musisz ponownie wygenerować klucz, aby go skopiować. Możesz również usunąć klucz API, jeśli nie chcesz już przesyłać pakietów.
Zakresowanie umożliwia tworzenie oddzielnych kluczy interfejsu API do różnych celów. Każdy klucz ma przedział czasu wygaśnięcia i można określić zakres klucza dla określonych pakietów lub wzorców globu. Zakres każdego klucza można również ograniczyć do określonych operacji: Wypychanie nowych pakietów i wersji pakietów, wypychanie tylko nowych wersji pakietów lub anulowanie listy.
Za pomocą określania zakresu można tworzyć klucze interfejsu API dla różnych osób, które zarządzają pakietami w organizacji, aby miały one tylko wymagane uprawnienia.
Aby uzyskać więcej informacji, zobacz klucze interfejsu API o określonym zakresie.
Użyj interfejsu wiersza polecenia dotnet
W folderze zawierającym plik nupkg uruchom następujące polecenie. Określ nazwę pliku nupkg, a następnie zastąp wartość klucza swoim kluczem interfejsu 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
Dane wyjściowe przedstawiają wyniki procesu publikowania:
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.
Aby uzyskać więcej informacji, zobacz dotnet nuget push.
Uwaga / Notatka
Jeśli chcesz uniknąć, aby twój pakiet testowy był dostępny publicznie na nuget.org, możesz przekazać go do witryny testowej nuget.org pod adresem https://int.nugettest.org. Należy pamiętać, że pakiety przekazane do int.nugettest.org mogą nie być zachowywane.
Użycie interfejsu wiersza polecenia NuGet
W oknie wiersza polecenia uruchom powyższe polecenie, zastępując
<your_API_key>kluczem uzyskanym z nuget.org.nuget setApiKey <your_API_key>To polecenie przechowuje klucz interfejsu API w konfiguracji NuGet, więc nie trzeba ponownie wprowadzać klucza interfejsu API na tym samym komputerze.
Uwaga / Notatka
Ten klucz interfejsu API nie jest używany do uwierzytelniania za pomocą prywatnych źródeł danych. Aby zarządzać poświadczeniami uwierzytelniania za pomocą tych źródeł, zobacz polecenie nuget sources.
Wypchnij pakiet za pomocą następującego polecenia:
nuget push YourPackage.nupkg -Source https://api.nuget.org/v3/index.json
Publikowanie za pomocą usługi Azure Pipelines
Pakiety można wypychać do nuget.org za pomocą usługi Azure Pipelines w ramach procesu ciągłej integracji/ciągłego wdrażania (CI/CD). Aby uzyskać więcej informacji, zobacz Publikowanie pakietów NuGet za pomocą usługi Azure Pipelines.
Publikowanie podpisanego pakietu
Aby przesłać podpisany pakiet, musisz najpierw zarejestrować certyfikat użyty do podpisania pakietu. Jeśli nie spełniasz podpisanych wymagań dotyczących pakietu, nuget.org odrzuca pakiet.
Limity rozmiaru pakietu
Nuget.org ma limit rozmiaru pakietu wynoszący około 250 MB. Po przekazaniu pakietu przekraczającego ten limit zostanie wyświetlony następujący błąd:
Plik pakietu przekracza limit rozmiaru. Spróbuj ponownie.
Jeśli taki pakiet zostanie wypchnięty z wiersza polecenia, generowane są następujące dane wyjściowe:
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.).
Jeśli występują te błędy, rozważ zmianę zawartości pakietu w celu zmniejszenia jej rozmiaru. Jeśli pakujesz symbole debugowania do pakietu, rozważ ich oddzielne opublikowanie. Inne zasoby można publikować oddzielnie jako co najmniej jeden pakiet zależności, aby rozłożyć je na mniejsze fragmenty.
Walidacja i indeksowanie pakietów
Pakiety wypychane do nuget.org przechodzą kilka weryfikacji, takich jak testy wirusów, a istniejące pakiety są okresowo skanowane. Po zakończeniu sprawdzania poprawności pakietu indeksowanie i wyświetlenie ich w wynikach wyszukiwania może zająć trochę czasu. Gdy pakiet jest indeksowany, jest wyświetlany w obszarze Pakiety nieznajdowane i na stronie pakietu zostanie wyświetlony następujący komunikat:
Po zakończeniu walidacji i indeksowania otrzymasz wiadomość e-mail z informacją o pomyślnym opublikowaniu pakietu. Jeśli sprawdzanie poprawności pakietu zakończy się niepowodzeniem, strona pakietu zostanie zaktualizowana w celu wyświetlenia skojarzonego błędu i otrzymasz wiadomość e-mail z powiadomieniem.
Walidacja i indeksowanie pakietów zwykle trwa mniej niż 15 minut. Jeśli publikowanie pakietów trwa dłużej niż oczekiwano, sprawdź stan nuget.org w status.nuget.org. Jeśli wszystkie systemy działają, a pakiet nie został pomyślnie opublikowany w ciągu godziny, skontaktuj się z nuget.org, korzystając z linku Kontakt z pomocą techniczną na stronie pakietu.
Aby wyświetlić stan pakietu, wybierz pozycję Zarządzaj pakietami pod nazwą konta w prawym górnym rogu w nuget.org, a następnie wybierz pakiet z listy Opublikowane pakiety lub Pakiety nieznajdowane.
Zarządzanie właścicielami pakietów w nuget.org
Właściciele pakietów mają pełne uprawnienia do pakietu, w tym dodawanie i usuwanie innych właścicieli oraz publikowanie aktualizacji.
Mimo że plik nuspec pakietu NuGet definiuje autorów pakietu, nuget.org nie używa tych metadanych do zdefiniowania własności. Zamiast tego nuget.org przypisuje własność osobie, która publikuje pakiet, zalogowanego użytkownika, który przesłał pakiet, lub użytkownikowi, którego klucz interfejsu API był używany z elementem dotnet push, nuget SetApiKeylub nuget push.
Aby zmienić własność pakietu:
Zaloguj się do nuget.org przy użyciu konta, które jest obecnie właścicielem pakietu.
Wybierz swoją nazwę konta w prawym górnym rogu, wybierz Zarządzaj pakietami i rozwiń Opublikowane pakiety.
Wybierz pakiet, którym chcesz zarządzać, a po prawej stronie pakietu wybierz pozycję Zarządzaj pakietem.
Na stronie zarządzanie pakietami wybierz pozycję Właściciele.
Wykonaj jedno z następujących działań:
Wybierz pozycję Usuń, aby usunąć bieżącego właściciela.
Dodaj właściciela w obszarze Dodaj właściciela , wprowadzając nazwę użytkownika i komunikat, a następnie wybierając pozycję Dodaj.
Ta akcja wysyła wiadomość e-mail do nowego współwłaściciela z linkiem potwierdzającym. Po potwierdzeniu ta osoba ma pełne uprawnienia do dodawania i usuwania właścicieli. Do chwili potwierdzenia, w sekcji Bieżący właściciele pokazane jest oczekiwanie na zatwierdzenie dla tej osoby.
Aby przenieść prawa własności, na przykład w przypadku zmiany właściciela lub gdy pakiet zostanie opublikowany na niewłaściwym koncie, należy dodać nowego właściciela. Po potwierdzeniu własności mogą usunąć starego właściciela z listy.
Aby przypisać własność do firmy lub grupy, utwórz konto na nuget.org z aliasem e-mail, który przekierowuje wiadomości do odpowiednich członków zespołu. Na przykład różne pakiety Microsoft ASP.NET są współdzielone przez konta microsoft i aspnet.
Czasami pakiet może nie mieć aktywnego właściciela. Na przykład oryginalny właściciel mógł pozostawić firmę, która wyprodukowała pakiet. Jeśli jesteś prawowitym właścicielem pakietu i musisz odzyskać własność, użyj formularza kontaktowego w nuget.org, aby wyjaśnić swoją sytuację zespołowi NuGet. Zespół przeprowadza proces weryfikacji twojej własności, w tym próbę zlokalizowania obecnego właściciela, i może wysłać ci nowe zaproszenie do zostania właścicielem pakietu.