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.
Ten artykuł dotyczy: ✔️ zestaw .NET 6 SDK i nowsze wersje
Name
dotnet pack - Pakuje kod do pakietu NuGet.
Streszczenie
dotnet pack [<PROJECT>|<SOLUTION>]
[--artifacts-path <ARTIFACTS_DIR>] [-c|--configuration <CONFIGURATION>]
[--disable-build-servers] [--force] [--include-source] [--include-symbols]
[--interactive] [--no-build] [--no-dependencies] [--no-restore] [--nologo]
[-o|--output <OUTPUT_DIRECTORY>] [--runtime <RUNTIME_IDENTIFIER>]
[-s|--serviceable] [--tl:[auto|on|off]] [-v|--verbosity <LEVEL>]
[--version-suffix <VERSION_SUFFIX>]
dotnet pack -h|--help
Description
Polecenie dotnet pack kompiluje projekt i tworzy pakiety NuGet. Wynikiem tego polecenia jest pakiet NuGet (czyli plik nupkg ).
Jeśli chcesz wygenerować pakiet zawierający symbole debugowania, dostępne są dwie opcje:
-
--include-symbols— tworzy pakiet symboli. -
--include-source— tworzy pakiet symboli z folderem zawierającymsrcpliki źródłowe.
Zależności NuGet spakowanego projektu są dodawane do pliku nuspec , więc są one prawidłowo rozwiązywane podczas instalowania pakietu. Jeśli spakowany projekt zawiera odwołania do innych projektów, inne projekty nie są uwzględnione w pakiecie. Obecnie musisz mieć pakiet dla każdego projektu, jeśli masz zależności między projektami.
Domyślnie dotnet pack najpierw kompiluje projekt. Jeśli chcesz uniknąć tego zachowania, przekaż --no-build tę opcję. Ta opcja jest często przydatna w scenariuszach kompilacji ciągłej integracji, w których wiesz, że kod został wcześniej skompilowany.
Uwaga / Notatka
W niektórych przypadkach nie można wykonać niejawnej kompilacji. Taka sytuacja może wystąpić, gdy GeneratePackageOnBuild jest ustawiona, aby uniknąć cyklicznej zależności między obiektami docelowymi kompilacji i pakietów. Kompilacja może również zakończyć się niepowodzeniem, jeśli istnieje zablokowany plik lub inny problem.
Właściwości programu MSBuild można podać w dotnet pack poleceniu procesu pakowania. Aby uzyskać więcej informacji, zobacz Właściwości docelowe pakietu NuGet i odwołanie do programu MSBuild Command-Line. W sekcji Przykłady pokazano, jak używać przełącznika MSBuild -p dla kilku różnych scenariuszy.
Uwaga / Notatka
Projekty internetowe nie są pakowalne.
Niejawne przywracanie
Nie trzeba uruchamiaćdotnet restore, ponieważ jest ona uruchamiana niejawnie przez wszystkie polecenia, które wymagają przywrócenia, takie jak dotnet new, , dotnet build, dotnet rundotnet test, , dotnet publish, i dotnet pack. Aby wyłączyć niejawne przywracanie, użyj --no-restore opcji .
Polecenie dotnet restore jest nadal przydatne w niektórych scenariuszach, w których jawne przywracanie ma sens, takie jak kompilacje ciągłej integracji w usługach Azure DevOps Services lub w systemach kompilacji, które muszą jawnie kontrolować, kiedy nastąpi przywracanie.
Aby uzyskać informacje na temat zarządzania kanałami informacyjnymi NuGet, zobacz dokumentacjędotnet restore.
To polecenie obsługuje dotnet restore opcje przekazywane w długim formularzu (na przykład --source). Opcje formularza krótkiego, takie jak -s, nie są obsługiwane.
Pobieranie manifestu obciążenia
Po uruchomieniu tego polecenia inicjuje asynchroniczne pobieranie manifestów reklamowych dla obciążeń. Jeśli pobieranie jest nadal uruchomione po zakończeniu tego polecenia, pobieranie zostanie zatrzymane. Aby uzyskać więcej informacji, zobacz Manifesty reklamowe.
Arguments
PROJECT | SOLUTION
Projekt lub rozwiązanie do spakowania. Jest to ścieżka do pliku csproj, vbproj lub fsproj albo do pliku lub katalogu rozwiązania. Jeśli nie zostanie określony, polecenie przeszukuje bieżący katalog dla projektu lub pliku rozwiązania.
Opcje
-
--artifacts-path <ARTIFACTS_DIR>Wszystkie pliki wyjściowe kompilacji z wykonanego polecenia zostaną umieszczone w podfolderach w określonej ścieżce oddzielonej przez projekt. Aby uzyskać więcej informacji, zobacz Artifacts Output Layout. Dostępne od zestawu .NET 8 SDK.
-
-c|--configuration <CONFIGURATION>Definiuje konfigurację kompilacji. Jeśli programujesz przy użyciu zestawu .NET 8 SDK lub nowszej wersji, polecenie domyślnie używa konfiguracji
Releasedla projektów, których element TargetFramework jest ustawiony nanet8.0lub nowszą wersję. Domyślna konfiguracja kompilacji toDebugdla wcześniejszych wersji zestawu SDK i wcześniejszych platform docelowych. Wartość domyślną można zastąpić w ustawieniach projektu lub za pomocą tej opcji. Aby uzyskać więcej informacji, zobacz "dotnet publish" używa konfiguracji wydania i "dotnet pack" używa konfiguracji wydania. -
--disable-build-serversWymusza zignorowanie jakichkolwiek trwałych serwerów kompilacji. Ta opcja zapewnia spójny sposób wyłączania całego użycia buforowania kompilacji, co wymusza kompilację od podstaw. Kompilacja, która nie opiera się na pamięciach podręcznych, jest przydatna, gdy pamięci podręczne mogą być uszkodzone lub niepoprawne z jakiegoś powodu. Dostępne od zestawu .NET 7 SDK.
--forceWymusza rozwiązanie wszystkich zależności, nawet jeśli ostatnie przywracanie zakończyło się pomyślnie. Określenie tej flagi jest takie samo jak usunięcie pliku project.assets.json .
--include-sourceZawiera symbole debugowania pakiety NuGet oprócz zwykłych pakietów NuGet w katalogu wyjściowym. Pliki źródeł znajdują się w folderze
srcw pakiecie symboli.--include-symbolsZawiera symbole debugowania pakiety NuGet oprócz zwykłych pakietów NuGet w katalogu wyjściowym.
-
--interactiveUmożliwia zatrzymanie polecenia i oczekiwanie na wprowadzenie lub działanie użytkownika. Na przykład w celu ukończenia uwierzytelniania.
--no-buildNie kompiluje projektu przed pakowaniem. Ponadto niejawnie ustawia flagę
--no-restore.--no-dependenciesIgnoruje odwołania do projektu i przywraca tylko projekt główny.
--no-restoreNie wykonuje niejawnego przywracania podczas uruchamiania polecenia.
--nologoNie wyświetla baneru startowego ani wiadomości o prawach autorskich.
-o|--output <OUTPUT_DIRECTORY>Umieszcza wbudowane pakiety w określonym katalogu.
Zestaw .NET 7.0.200 SDK
W zestawie SDK w wersji 7.0.200 jeśli określisz
--outputopcję podczas uruchamiania tego polecenia w rozwiązaniu, interfejs wiersza polecenia wyemituje błąd. Jest to regresja i została naprawiona w wersji 7.0.201 i nowszych wersji zestawu .NET SDK.
--runtime <RUNTIME_IDENTIFIER>Określa docelowe środowisko uruchomieniowe, dla których mają być przywracane pakiety. Aby uzyskać listę identyfikatorów środowiska uruchomieniowego (RID), zobacz wykaz identyfikatorów RID.
-s|--serviceableUstawia flagę z możliwością obsługi w pakiecie. Aby uzyskać więcej informacji, zobacz Blog platformy .NET: .NET Framework 4.5.1 obsługuje aktualizacje zabezpieczeń firmy Microsoft dla bibliotek NuGet platformy .NET.
-
--tl:[auto|on|off]Określa, czy rejestrator terminalu ma być używany dla danych wyjściowych kompilacji. Wartość domyślna to
auto, która najpierw weryfikuje środowisko przed włączeniem rejestrowania terminalu. Sprawdzanie środowiska sprawdza, czy terminal może korzystać z nowoczesnych funkcji wyjściowych i nie używa przekierowanych standardowych danych wyjściowych przed włączeniem nowego rejestratora.onPomija sprawdzanie środowiska i włącza rejestrowanie terminalu.offPomija sprawdzanie środowiska i używa domyślnego rejestratora konsoli.Rejestrator terminalu pokazuje fazę przywracania, po której następuje faza kompilacji. W każdej fazie obecnie projekty budowlane są wyświetlane w dolnej części terminalu. Każdy projekt, który tworzy, generuje dane wyjściowe zarówno docelowy programu MSBuild, który jest obecnie kompilowany, jak i ilość czasu spędzonego na tym obiekcie docelowym. Możesz wyszukać te informacje, aby dowiedzieć się więcej o kompilacji. Po zakończeniu kompilowania projektu zostanie napisana pojedyncza sekcja "ukończona kompilacja", która przechwytuje:
- Nazwa utworzonego projektu.
- Struktura docelowa (jeśli jest przeznaczona dla wielu celów).
- Stan tej kompilacji.
- Podstawowe dane wyjściowe tej kompilacji (która jest hiperlinkowana).
- Każda diagnostyka wygenerowana dla tego projektu.
Ta opcja jest dostępna począwszy od platformy .NET 8.
-
-v|--verbosity <LEVEL>Ustawia poziom szczegółowości polecenia. Dozwolone wartości to
q[uiet], ,m[inimal]n[ormal],d[etailed], idiag[nostic]. Aby uzyskać więcej informacji, zobacz LoggerVerbosity. --version-suffix <VERSION_SUFFIX>Definiuje wartość właściwości
VersionSuffixMSBuild. Wpływ tej właściwości na wersję pakietu zależy od wartościVersionwłaściwości iVersionPrefix, jak pokazano w poniższej tabeli:Właściwości z wartościami Wersja pakietu Żaden 1.0.0Version$(Version)VersionPrefixtylko$(VersionPrefix)VersionSuffixtylko1.0.0-$(VersionSuffix)VersionPrefixiVersionSuffix$(VersionPrefix)-$(VersionSuffix)Jeśli chcesz użyć polecenia
--version-suffix, określVersionPrefixplik projektu, a nieVersionw pliku projektu. Na przykład jeśliVersionPrefixelement ma0.1.2wartość i zostanie przekazana--version-suffix rc.1dodotnet packelementu , wersja pakietu będzie mieć wartość0.1.2-rc.1.Jeśli
Versionma wartość i przekazujesz--version-suffixdodotnet packelementu , wartość określona dla--version-suffixparametru jest ignorowana.-
-?|-h|--helpWyświetla opis sposobu używania polecenia .
Przykłady
Spakuj projekt w bieżącym katalogu:
dotnet packSpakuj
app1projekt:dotnet pack ~/projects/app1/project.csprojSpakuj projekt w bieżącym katalogu i umieść wynikowe pakiety w folderze
nupkgs:dotnet pack --output nupkgsSpakuj projekt w bieżącym katalogu do
nupkgsfolderu i pomiń krok kompilacji:dotnet pack --no-build --output nupkgsPrzy użyciu sufiksu wersji projektu skonfigurowanego tak jak
<VersionSuffix>$(VersionSuffix)</VersionSuffix>w pliku csproj spakuj bieżący projekt i zaktualizuj wynikowej wersji pakietu przy użyciu danego sufiksu:dotnet pack --version-suffix "ci-1234"Ustaw wersję pakietu na
2.1.0wartość z właściwościąPackageVersionMSBuild:dotnet pack -p:PackageVersion=2.1.0Spakuj projekt dla określonej platformy docelowej:
dotnet pack -p:TargetFrameworks=net45Spakuj projekt i użyj określonego środowiska uruchomieniowego (Windows) dla operacji przywracania:
dotnet pack --runtime win-x64Spakuj projekt przy użyciu pliku nuspec :
dotnet pack ~/projects/app1/project.csproj -p:NuspecFile=~/projects/app1/project.nuspec -p:NuspecBasePath=~/projects/app1/nugetAby uzyskać informacje o sposobie używania
NuspecFileelementów ,NuspecBasePathiNuspecProperties, zobacz następujące zasoby: