dotnet pack

Tento článek se vztahuje na: ✔️ .NET Core 3.1 SDK a novější verze

Name

dotnet pack – Zabalí kód do balíčku NuGet.

Synopse

dotnet pack [<PROJECT>|<SOLUTION>] [-c|--configuration <CONFIGURATION>]
    [--force] [--include-source] [--include-symbols] [--interactive]
    [--no-build] [--no-dependencies] [--no-restore] [--nologo]
    [-o|--output <OUTPUT_DIRECTORY>] [--runtime <RUNTIME_IDENTIFIER>]
    [-s|--serviceable] [-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 obsahující symboly ladění, máte k dispozici dvě možnosti:

  • --include-symbols – vytvoří balíček symbolů.
  • --include-source – vytvoří balíček symbolů se složkou src uvnitř 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 nejsou součástí balíčku. 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 --no-build tuto možnost. 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.

Do příkazu pro proces balení můžete zadat vlastnosti dotnet pack NÁSTROJE MSBuild. Další informace najdete v tématu Cílové vlastnosti balíčku NuGet a referenční informace Command-Line nástroje MSBuild. 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 testdotnet publishdotnet builddotnet runa .dotnet pack Pokud chcete zakázat implicitní obnovení, použijte --no-restore tuto 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 v 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

Když spustíte tento příkaz, zahájí asynchronní stahování manifestů reklamy pro úlohy. Pokud stahování po dokončení tohoto příkazu stále běží, stahování se zastaví. Další informace najdete v tématu Inzerce manifestů.

Argumenty

PROJECT | SOLUTION

Projekt nebo řešení, které se má zabalit. Jedná se o cestu k souboru csproj, vbproj nebo fsproj, nebo k souboru nebo adresáři řešení. Pokud není zadaný, příkaz vyhledá aktuální adresář pro soubor projektu nebo řešení.

Možnosti

  • -c|--configuration <CONFIGURATION>

    Definuje konfiguraci sestavení. Výchozí hodnota pro většinu projektů je Debug, ale můžete přepsat nastavení konfigurace sestavení v projektu.

  • --force

    Vynutí 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 .

  • -?|-h|--help

    Vytiskne popis použití příkazu.

  • --include-source

    Obsahuje symboly ladění balíčků NuGet kromě běžných balíčků NuGet ve výstupním adresáři. Zdrojové soubory jsou součástí src složky v balíčku symbolů.

  • --include-symbols

    Obsahuje symboly ladění balíčků NuGet kromě běžných balíčků NuGet ve výstupním adresáři.

  • --interactive

    Umožňuje, aby příkaz zastavil a čekal na vstup uživatele nebo akci. Například k dokončení ověřování. K dispozici od sady .NET Core 3.0 SDK.

  • --no-build

    Nevystaví projekt před zabalením. Také implicitně nastaví --no-restore příznak.

  • --no-dependencies

    Ignoruje odkazy projektu na projekt a obnoví pouze kořenový projekt.

  • --no-restore

    Při spuštění příkazu se nespustí implicitní obnovení.

  • --nologo

    Nezobrazuje se úvodní banner ani zpráva o autorských právech.

  • -o|--output <OUTPUT_DIRECTORY>

    Umístí předdefinované balíčky do zadaného adresáře.

  • --runtime <RUNTIME_IDENTIFIER>

    Určuje cílový modul runtime pro obnovení balíčků. Seznam identifikátorů runtime (RID) najdete v katalogu RID.

  • -s|--serviceable

    Nastaví příznak serviceable v balíčku. Další informace naleznete v tématu .NET Blog: .NET Framework 4.5.1 Podporuje zabezpečení Aktualizace Microsoftu pro knihovny NuGet .NET.

  • -v|--verbosity <LEVEL>

    Nastaví úroveň podrobností příkazu. Povolené hodnoty jsou q[uiet], , m[inimal], d[etailed]n[ormal]a diag[nostic]. Další informace naleznete v tématu LoggerVerbosity.

  • --version-suffix <VERSION_SUFFIX>

    Definuje hodnotu vlastnosti VersionSuffix MSBuild. Účinek této vlastnosti na verzi balíčku závisí na hodnotách a VersionPrefix vlastnostechVersion, jak je znázorněno v následující tabulce:

    Vlastnosti s hodnotami Verze balíčku
    Žádné 1.0.0
    Version $(Version)
    VersionPrefix pouze $(VersionPrefix)
    VersionSuffix pouze 1.0.0-$(VersionSuffix)
    VersionPrefix a VersionSuffix $(VersionPrefix)-$(VersionSuffix)

    Pokud chcete použít --version-suffix, zadejte VersionPrefix a ne Version v souboru projektu. Pokud VersionPrefix je například a předáte --version-suffix rc.1dotnet pack, verze balíčku bude 0.1.2-rc.10.1.2 .

    Pokud Version má hodnotu a předáváte --version-suffixdotnet packji, hodnota zadaná pro --version-suffix je ignorována.

Příklady

  • Zabalte projekt do aktuálního adresáře:

    dotnet pack
    
  • Zabalte app1 projekt:

    dotnet pack ~/projects/app1/project.csproj
    
  • Zabalte projekt do aktuálního adresáře a umístěte výsledné balíčky do nupkgs složky:

    dotnet pack --output nupkgs
    
  • Zabalte projekt do aktuálního nupkgs adresáře do složky a přeskočte krok sestavení:

    dotnet pack --no-build --output nupkgs
    
  • S 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.0 vlastnost PackageVersion MSBuild:

    dotnet pack -p:PackageVersion=2.1.0
    
  • Zabalte projekt pro konkrétní cílovou architekturu:

    dotnet pack -p:TargetFrameworks=net45
    
  • Zabalte projekt a pro operaci obnovení použijte konkrétní modul runtime (Windows 10):

    dotnet pack --runtime win10-x64
    
  • Zabalte projekt pomocí souboru .nuspec :

    dotnet pack ~/projects/app1/project.csproj -p:NuspecFile=~/projects/app1/project.nuspec -p:NuspecBasePath=~/projects/app1/nuget
    

    Informace o tom, jak používat NuspecFile, NuspecBasePatha NuspecPropertiesnaleznete v následujících zdrojích informací: