Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
NuGet jest menedżerem pakietów dla ekosystemu platformy .NET i jest podstawowym sposobem odnajdywania i uzyskiwania bibliotek open source platformy .NET. NuGet.org, bezpłatna usługa oferowana przez firmę Microsoft do hostowania pakietów NuGet, jest hostem podstawowym publicznych pakietów NuGet, ale można publikować w niestandardowych usługach NuGet, takich jak MyGet i Azure Artifacts.
Tworzenie pakietu NuGet
Pakiet NuGet (*.nupkg) to plik zip zawierający zestawy .NET i skojarzone metadane.
Istnieją dwa główne sposoby tworzenia pakietu NuGet. Nowszym i zalecanym sposobem jest utworzenie pakietu na podstawie projektu w stylu zestawu SDK (pliku projektu, którego zawartość zaczyna się od <Project Sdk="Microsoft.NET.Sdk">). Zestawy i obiekty docelowe są automatycznie dodawane do pakietu, a pozostałe metadane są dodawane do pliku MSBuild, na przykład nazwa pakietu i numer wersji. Kompilowanie za pomocą polecenia dotnet pack zwraca plik *.nupkg zamiast zestawów.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<AssemblyName>Contoso.Api</AssemblyName>
<PackageVersion>1.1.0</PackageVersion>
<Authors>John Doe</Authors>
</PropertyGroup>
</Project>
Starszy sposób tworzenia pakietu NuGet dotyczy pliku *.nuspec i narzędzia wiersza polecenia nuget.exe. Plik nuspec zapewnia świetną kontrolę, ale należy dokładnie określić zestawy i obiekty docelowe, które mają zostać uwzględnione w ostatnim pakiecie NuGet. Łatwo jest popełnić błąd lub zapomnieć o aktualizacji nuspec podczas wprowadzania zmian. Zaletą narzędzia nuspec jest użycie go do tworzenia pakietów NuGet dla struktur, które nie obsługują jeszcze pliku projektu w stylu zestawu SDK.
✔️ ROZWAŻ użycie pliku projektu w stylu zestawu SDK w celu utworzenia pakietu NuGet.
Zależności pakietów
Zależności pakietów NuGet są szczegółowo omówione w artykule Zależności .
Ważne metadane pakietu NuGet
Pakiet NuGet obsługuje wiele właściwości metadanych . Poniższa tabela zawiera podstawowe metadane, które powinny zawierać każdy pakiet w NuGet.org:
| Nazwa właściwości MSBuild | Nazwa narzędzia Nuspec | Opis |
|---|---|---|
PackageId |
id |
Identyfikator pakietu. Prefiks z identyfikatora może być zarezerwowany, jeśli spełnia kryteria . |
PackageVersion |
version |
Wersja pakietu NuGet. Aby uzyskać więcej informacji, zobacz wersję pakietu NuGet . |
Title |
title |
Przyjazny dla człowieka tytuł pakietu. Domyślnie jest to PackageId. |
Description |
description |
Długi opis pakietu wyświetlanego w interfejsie użytkownika. |
Authors |
authors |
Rozdzielona przecinkami lista autorów pakietów zgodna z nazwami profilów w nuget.org. |
PackageTags |
tags |
Spacja lub rozdzielana średnikami lista tagów i słów kluczowych opisujących pakiet. Tagi są używane podczas wyszukiwania pakietów. |
PackageIcon |
icon |
Ścieżka do obrazu w pakiecie, który ma być użyty jako ikona pakietu. Przeczytaj więcej o metadanych icon. |
PackageProjectUrl |
projectUrl |
Adres URL strony głównej projektu lub repozytorium źródłowego. |
PackageLicenseExpression |
license |
Identyfikator SPDX licencji projektu. Tylko zatwierdzone licencje OSI i FSF mogą używać identyfikatora. Inne licencje powinny używać PackageLicenseFile. Przeczytaj więcej o metadanych license. |
Ważny
Projekt bez licencji domyślnie posiada wyłączne prawa autorskie, co uniemożliwia prawnie jego wykorzystanie przez inne osoby.
✔️ ROZWAŻ wybranie nazwy pakietu NuGet z prefiksem spełniającym kryteria rezerwacji prefiksu NuGet kryteriów.
✔️ Używaj odnośnika HTTPS dla ikony pakietu.
Witryny, takie jak NuGet.org, są uruchamiane z włączonym protokołem HTTPS, a wyświetlanie obrazu innego niż HTTPS spowoduje utworzenie ostrzeżenia o mieszanej zawartości.
✔️ Należy użyć obrazu ikony pakietu o rozmiarze 64x64 z przezroczystym tłem, aby uzyskać najlepsze wyniki wyświetlania.
✔️ ROZWAŻ skonfigurowanie Source Link w celu dodania metadanych kontroli wersji do zestawów programistycznych i pakietu NuGet.
Link źródłowy automatycznie dodaje metadane
RepositoryUrliRepositoryTypedo pakietu NuGet. Link źródłowy dodaje również informacje o dokładnym kodzie źródłowym, z którego utworzono pakiet. Na przykład pakiet utworzony na podstawie repozytorium Git będzie miał dodany skrót zatwierdzenia jako metadane.
Pakiety wersji wstępnej
Pakiety NuGet z sufiksem wersji są uznawane za wersję przedprodukcyjną. Domyślnie interfejs użytkownika Menedżera pakietów NuGet wyświetla stabilne wersje, chyba że użytkownik zdecyduje się na pakiety w wersji wstępnej, co czyni pakiety wersji wstępnej idealnym rozwiązaniem do ograniczonego testowania użytkowników.
<PackageVersion>1.0.1-beta1</PackageVersion>
Notatka
Stabilny pakiet nie może zależeć od pakietu w wersji wstępnej. Musisz utworzyć własną wersję wstępną pakietu lub zależeć od starszej stabilnej wersji.
✔️ Opublikuj pakiet w wersji wstępnej podczas testowania, podglądu lub eksperymentowania.
✔️ Publikuj stabilny pakiet, gdy jest gotowy, aby inne stabilne pakiety mogły się do niego odwoływać.
Pakiety symboli
Pliki symboli (*.pdb) są tworzone przez kompilator .NET wraz z modułami. Pliki symboli przyporządkowują punkty wykonywania do oryginalnego kodu źródłowego, aby można było śledzić kod źródłowy podczas jego działania za pomocą debugera. NuGet obsługuje generowanie oddzielnego pakietu symboli (*.snupkg), który zawiera pliki symboli obok głównego pakietu zawierającego zestawy .NET. Chodzi o to, że pakiety symboli są hostowane na serwerze symboli i są pobierane tylko przez narzędzie, takie jak Program Visual Studio na żądanie.
NuGet.org hostuje własne repozytorium serwera symboli . Deweloperzy mogą używać symboli opublikowanych na serwerze symboli NuGet.org, dodając https://symbols.nuget.org/download/symbols do źródeł symboli w programie Visual Studio.
Ważny
Serwer symboli NuGet.org obsługuje tylko nowe pliki symboli przenośnych (*.pdb) utworzone przez projekty w stylu zestawu SDK.
Aby użyć serwera symboli NuGet.org podczas debugowania biblioteki .NET, deweloperzy muszą mieć program Visual Studio 2017 w wersji 15.9 lub nowszej.
Alternatywą do utworzenia pakietu symboli jest osadzanie plików symboli w głównym pakiecie NuGet. Główny pakiet NuGet będzie większy, ale osadzone pliki symboli oznaczają, że deweloperzy nie muszą konfigurować serwera symboli NuGet.org. Jeśli tworzysz pakiet NuGet przy użyciu projektu w stylu zestawu SDK, możesz osadzić pliki symboli, ustawiając właściwość AllowedOutputExtensionsInPackageBuildOutputFolder:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!-- Include symbol files (*.pdb) in the built .nupkg -->
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
</PropertyGroup>
</Project>
Wadą osadzania plików symboli jest zwiększenie rozmiaru pakietu o około 30% dla bibliotek .NET kompilowanych przy użyciu projektów w stylu SDK. Jeśli rozmiar pakietu jest problemem, zamiast tego należy opublikować symbole w pakiecie symboli.
✔️ ROZWAŻ publikowanie symboli jako pakietu symboli (*.snupkg) do NuGet.org
Pakiety symboli (
*.snupkg) zapewniają deweloperom dobre środowisko debugowania na żądanie bez zwiększania rozmiaru głównego pakietu i bez wpływu na wydajność przywracania dla tych, którzy nie planują debugować pakietów NuGet.Zastrzeżeniem jest to, że użytkownicy mogą potrzebować znaleźć i skonfigurować serwer symboli NuGet w swoim środowisku IDE (jako konfiguracja jednorazowa), aby uzyskać pliki symboli. Program Visual Studio 2019 w wersji 16.1 dodał serwer symboli nuGet.org do listy domyślnych serwerów symboli.