Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
článek This se vztahuje na: ✔️ .NET 6 SDK a novější verze
Název
dotnet pack – Zabalí kód do balíčku NuGet.
Přehled
dotnet pack [<PROJECT>|<SOLUTION>|<NUSPEC>|<FILE>]
[--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>] [-p|--property:<PROPERTYNAME>=<VALUE>]
[--runtime <RUNTIME_IDENTIFIER>]
[-s|--serviceable] [--tl:[auto|on|off]] [-v|--verbosity <LEVEL>]
[--version <VERSION>] [--version-suffix <VERSION_SUFFIX>]
dotnet pack -h|--help
Description
Příkaz dotnet pack sestaví projekt a vytvoří balíčky NuGet. Výsledkem tohoto příkazu je balíček NuGet (tj . soubor .nupkg ).
Počínaje .NET 10 můžete jako argument předat také soubor .nuspec nebo souborovou aplikaci (.cs). Když předáte soubor .nuspec , dotnet pack vytvoří balíček ze souboru .nuspec bez vyžadování souboru projektu a bez spuštění NÁSTROJE MSBuild. Když předáte souborovou aplikaci, dotnet pack zabalí ji bez souboru projektu.
Pokud chcete vygenerovat balíček, který obsahuje symboly ladění, máte k dispozici dvě možnosti:
-
--include-symbols- vytvoří balíček symbolů. -
--include-source– vytvoří balíček symbolů se složkousrcuvnitř obsahující zdrojové soubory.
Závislosti NuGet zabaleného projektu se přidají do souboru .nuspec , takže se správně přeloží při instalaci balíčku. Pokud má zabalený projekt odkazy na jiné projekty, ostatní projekty se do balíčku nezahrnou. V současné době musíte mít balíček pro každý projekt, pokud máte závislosti mezi projekty.
Ve výchozím nastavení dotnet pack sestaví projekt jako první. Pokud se chcete tomuto chování vyhnout, předejte možnost --no-build . Tato možnost je často užitečná ve scénářích sestavení kontinuální integrace (CI), ve kterých víte, že kód byl dříve sestaven.
Poznámka:
V některých případech nelze implicitní sestavení provést. K tomu může dojít, když GeneratePackageOnBuild je nastavena, aby se zabránilo cyklické závislosti mezi cíli sestavení a balíčku. Sestavení může také selhat, pokud existuje uzamčený soubor nebo jiný problém.
Poznámka:
Webové projekty nejsou zabalitelné.
Implicitní obnovení
Nemusíte spouštětdotnet restore, protože se spouští implicitně všemi příkazy, které vyžadují obnovení, například dotnet new, , dotnet build, dotnet run, dotnet testdotnet publisha dotnet pack. Pokud chcete zakázat implicitní obnovení, použijte tuto --no-restore možnost.
Příkaz dotnet restore je stále užitečný v určitých situacích, kdy explicitní obnovení dává smysl, například sestavení integrace kontinuá integrace ve službě Azure DevOps Services nebo v systémech sestavení, které potřebují explicitně řídit, kdy dojde k obnovení.
Informace o správě informačních kanálů NuGet najdete v dotnet restore dokumentaci.
Tento příkaz podporuje dotnet restore možnosti, které jsou předány v dlouhém formátu (například --source). Krátké možnosti formuláře, například -s, nejsou podporovány.
Stažení manifestu úloh
Při spuštění tohoto příkazu zahájí asynchronní stahování reklamních manifestů pro úlohy. Pokud stahování po dokončení tohoto příkazu stále běží, stahování se zastaví. Další informace naleznete v tématu Reklamní manifesty.
Arguments
PROJECT | SOLUTION | NUSPEC | FILE
Projekt, řešení, soubor .nuspec nebo souborová aplikace, která se má zabalit.
PROJECTje cesta k souboru.csproj,.vbprojnebo.fsprojsouboru nebo adresáři obsahujícímu soubor projektu.SOLUTIONje cesta k souboru řešení (.slnnebo.slnxpříponě) nebo k adresáři obsahujícímu soubor řešení.NUSPECje cesta k.nuspecsouboru. Dostupné od .NET 10.FILEje cesta k aplikaci založené na souborech (soubor C# bez odpovídajícího souboru projektu). Dostupné od .NET 10. Další informace najdete v tématu Vytváření souborových aplikací jazyka C#.Pokud není zadaný, příkaz vyhledá v aktuálním adresáři soubor projektu nebo řešení.
Možnosti
-
--artifacts-path <ARTIFACTS_DIR>Všechny výstupní soubory sestavení ze spuštěného příkazu budou v podsložkách pod zadanou cestou oddělenou projektem. Další informace naleznete v tématu Rozložení výstupu artefaktů. Tato možnost a zadaná hodnota musí být explicitně kaskádové v libovolném
dotnetpříkazu, který závisí na výstupu jinéhodotnetpříkazu, například při použitídotnet build --no-restoreadotnet publish --no-build. K dispozici od .NET 8 SDK. -
-c|--configuration <CONFIGURATION>Definuje konfiguraci sestavení. Pokud vyvíjíte pomocí sady .NET 8 SDK nebo novější verze, použije příkaz ve výchozím nastavení konfiguraci
Releasepro projekty, jejichž targetFramework je nastavená nanet8.0nebo novější verzi. Výchozí konfigurace sestavení jeDebugpro starší verze sady SDK a pro starší cílové architektury. Výchozí nastavení projektu můžete přepsat nebo můžete použít tuto možnost. Další informace najdete v tématu "dotnet publish" používá konfigurace vydané verze a 'dotnet pack' používá release configuration. -
--disable-build-serversVynutí příkaz ignorovat všechny trvalé buildové servery. Tato možnost poskytuje konzistentní způsob, jak zakázat veškeré použití ukládání sestavení do mezipaměti, což vynutí sestavení úplně od začátku. Sestavení, které nespoléhá na mezipaměti, je užitečné, když jsou mezipaměti z nějakého důvodu poškozené nebo nesprávné. K dispozici od .NET 7 SDK.
--forceVynutí vyřešení všech závislostí, i když bylo poslední obnovení úspěšné. Určení tohoto příznaku je stejné jako odstranění souboru project.assets.json .
--include-sourceObsahuje symboly ladění balíčků NuGet kromě běžných balíčků NuGet ve výstupním adresáři. Zdrojové soubory jsou součástí
srcsložky v balíčku symbolů.--include-symbolsObsahuje symboly ladění balíčků NuGet kromě běžných balíčků NuGet ve výstupním adresáři.
-
--interactiveUmožňuje příkazu zastavit a čekat na uživatelský vstup nebo akci. Například k dokončení ověřování.
--no-buildNevystaví projekt před zabalením. Příznak také implicitně nastaví
--no-restore.--no-dependenciesIgnoruje odkazy projektu na projekt a obnoví pouze kořenový projekt.
--no-restorePři spuštění příkazu nespustí implicitní obnovení.
--nologoNezobrazuje úvodní banner ani zprávu o autorských právech.
-o|--output <OUTPUT_DIRECTORY>Umístí předdefinované balíčky do zadaného adresáře.
.NET 7.0.200 SDK
Pokud v sadě SDK 7.0.200 zadáte
--outputmožnost při spuštění tohoto příkazu v řešení, rozhraní příkazového řádku vygeneruje chybu. Jedná se o regresi a byla opravena ve verzi 7.0.201 a novějších verzích sady .NET SDK.
-p|--property:<PROPERTYNAME>=<VALUE>Nastaví jednu nebo více vlastností nástroje MSBuild. Při balení souboru .nuspec přímo, vlastnosti se používají k nahrazení tokenu v souboru .nuspec místo jako vlastnosti NÁSTROJE MSBuild. Zadejte více vlastností oddělených středníky nebo opakováním možnosti:
--property:<NAME1>=<VALUE1>;<NAME2>=<VALUE2> --property:<NAME1>=<VALUE1> --property:<NAME2>=<VALUE2>Další informace naleznete v tématu NuGet pack target properties and MSBuild command-line reference.
--runtime <RUNTIME_IDENTIFIER>Určuje cílový modul runtime pro obnovení balíčků. Seznam identifikátorů runtime (RID) najdete v katalogu RID.
-s|--serviceableNastaví příznak serviceable v balíčku. Další informace najdete v tématu .NET Blog: .NET Framework 4.5.1 podporuje aktualizace .NET zabezpečení od Microsoftu pro knihovny NuGet.
-
--tl:[auto|on|off]Určuje, jestli se má pro výstup sestavení použít terminálový protokolovací nástroj . Výchozí hodnota je
auto, která nejprve ověří prostředí před povolením protokolování terminálu. Prostředí ověřuje, že terminál dokáže používat moderní výstupní funkce a nepoužívá přesměrovaný standardní výstup, než povolí nový protokolovací modul.onpřeskočí kontrolu prostředí a povolí protokolování terminálu.offpřeskočí kontrolu prostředí a použije výchozí protokolovací nástroj konzoly.Terminal Logger ukazuje fázi obnovení následovanou fází sestavení. Během každé fáze se aktuálně stavební projekty zobrazují v dolní části terminálu. Každý projekt, který vytváří výstupy cíle NÁSTROJE MSBuild, který se právě sestavuje, i dobu strávenou na daném cíli. Další informace o sestavení najdete v těchto informacích. Po dokončení sestavení projektu se zapíše jeden oddíl "sestavení dokončeno", který zachycuje:
- Název sestaveného projektu.
- Cílová architektura (pokud je cílená na více cílů).
- Stav tohoto sestavení.
- Primární výstup tohoto sestavení (který je hypertextový odkaz).
- Všechna diagnostika vygenerovaná pro tento projekt.
Tato možnost je dostupná od .NET 8.
-
-v|--verbosity <LEVEL>Nastaví úroveň podrobností příkazu. Povolené hodnoty jsou
q[uiet], ,m[inimal]n[ormal],d[etailed]adiag[nostic]. Další informace najdete v tématu LoggerVerbosity. --version <VERSION>Verze balíčku, která se má vytvořit. Při balení souboru .nuspec přepíše číslo verze v souboru .nuspec .
Poznámka:
Dostupné od .NET 10.
--version-suffix <VERSION_SUFFIX>Definuje hodnotu vlastnosti
VersionSuffixMSBuild. Účinek této vlastnosti na verzi balíčku závisí na hodnotách aVersionvlastnostechVersionPrefix, jak je znázorněno v následující tabulce:Vlastnosti s hodnotami Verze balíčku None 1.0.0Version$(Version)VersionPrefixpouze$(VersionPrefix)VersionSuffixpouze1.0.0-$(VersionSuffix)VersionPrefixaVersionSuffix$(VersionPrefix)-$(VersionSuffix)Pokud chcete použít
--version-suffix, zadejteVersionPrefixa neVersionv souboru projektu. PokudVersionPrefixje0.1.2a předáte--version-suffix rc.1dotnet packji, bude0.1.2-rc.1verze balíčku .Pokud
Versionmá hodnotu a předáte--version-suffixdotnet packji, hodnota zadaná pro--version-suffixje ignorována.-
-?|-h|--helpVytiskne popis použití příkazu.
Examples
Zabalte projekt do aktuálního adresáře:
dotnet packZabalte
app1projekt:dotnet pack ~/projects/app1/project.csprojZabalte projekt do aktuálního adresáře a umístěte výsledné balíčky do
nupkgssložky:dotnet pack --output nupkgsZabalte projekt v aktuálním adresáři do
nupkgssložky a přeskočte krok sestavení:dotnet pack --no-build --output nupkgsS příponou verze projektu nakonfigurovanou jako
<VersionSuffix>$(VersionSuffix)</VersionSuffix>v souboru .csproj zabalte aktuální projekt a aktualizujte výslednou verzi balíčku s danou příponou:dotnet pack --version-suffix "ci-1234"Nastavte verzi balíčku na
2.1.0vlastnostPackageVersionMSBuild:dotnet pack -p:PackageVersion=2.1.0Zabalte projekt pro konkrétní cílovou architekturu:
dotnet pack -p:TargetFrameworks=net45Zabalte projekt a pro operaci obnovení použijte konkrétní modul runtime (Windows):
dotnet pack --runtime win-x64Zabalte projekt pomocí souboru .nuspec (přístup založený na projektu MSBuild):
dotnet pack ~/projects/app1/project.csproj -p:NuspecFile=~/projects/app1/project.nuspec -p:NuspecBasePath=~/projects/app1/nugetInformace o tom, jak používat
NuspecFile,NuspecBasePathaNuspecProperties, naleznete v následujících zdrojích informací:Zabalte soubor .nuspec přímo bez souboru projektu (.NET 10 a novější):
dotnet pack MyPackage.nuspec --output ./artifacts ```dotnetcli dotnet pack MyPackage.nuspec --version 1.2.3 --output ./artifactsZabalte soubor .nuspec přímo a použijte nahrazení tokenu (.NET 10 a novější):
dotnet pack MyPackage.nuspec --property:Version=1.2.3 --property:Configuration=Release --output ./artifacts