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.
Tento článek 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>]
[--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
Příkaz dotnet pack sestaví projekt a vytvoří balíčky NuGet. Výsledkem tohoto příkazu je balíček NuGet (tj . soubor .nupkg ).
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.
Vlastnosti dotnet pack nástroje MSBuild můžete zadat příkazu pro proces balení. Další informace naleznete v tématu NuGet pack cílové vlastnosti a MSBuild Command-Line Reference. V části Příklady se dozvíte, jak použít přepínač MSBuild -p pro několik různých scénářů.
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 scénářích, kdy explicitní obnovení dává smysl, například sestavení kontinuální 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
Projekt nebo řešení, které se má zabalit. Je to cesta k souboru csproj, vbproj nebo fsproj nebo k souboru řešení nebo adresáři. 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ů. K dispozici od sady .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 sady .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.
--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 naleznete v tématu .NET Blog: .NET Framework 4.5.1 Podporuje aktualizace zabezpečení společnosti Microsoft pro knihovny NuGet .NET.
-
--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 verze .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-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 :
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í: