dotnet pack

Tento článek se týká: ✔️ .NET Core 2.x SDK a novějších verzí

Name

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

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ří NuGet balíčky. Výsledkem tohoto příkazu je balíček NuGet (to znamená 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 src složkami, ve které jsou zdrojové soubory.

NuGet do souboru .nuspec se přidávají závislosti zabalených projektů, takže se při instalaci balíčku správně vyřeší. Pokud zabalený projekt obsahuje odkazy na jiné projekty, ostatní projekty nejsou zahrnuty v 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 nejprve sestaví projekt. Pokud se chcete tomuto chování vyhnout, předejte --no-build parametr . Tato možnost je často užitečná ve scénářích sestavení kontinuální integrace (CI), kde víte, že kód byl vytvořen dříve.

Poznámka

V některých případech nelze implicitní sestavení provést. K tomu může dojít při nastavení, aby se zabránilo cyklické závislosti GeneratePackageOnBuild mezi cíli sestavení a balíčku. Sestavení může selhat také v případě, že existuje uzamčený soubor nebo jiný problém.

Do příkazu MSBuild pro proces balení dotnet pack můžete zadat vlastnosti. Další informace najdete v tématu NuGet vlastnosti cíle balíčku a v referenčních MSBuild Command-Line balíčku. Část Příklady ukazuje, jak použít MSBuild -p pro několik různých scénářů.

Webové projekty nejsou ve výchozím nastavení zabalitelné. Pokud chcete přepsat výchozí chování, přidejte do souboru .csproj následující vlastnost:

<PropertyGroup>
   <IsPackable>true</IsPackable>
</PropertyGroup>

Implicitní obnovení

Nemusíte spouštět dotnet restore , protože se spouští implicitně všemi příkazy, které vyžadují obnovení, například dotnet new , dotnet build , dotnet run , dotnet test , dotnet publish a dotnet pack . Pokud chcete zakázat implicitní obnovení, použijte --no-restore možnost.

dotnet restorePříkaz je stále užitečný v některých scénářích, kde explicitní obnovení dává smysl, jako je například průběžná integrace sestavení v Azure DevOps Services nebo v systémech sestavení, které potřebují explicitně řídit, kdy dojde k obnovení.

Informace o tom, jak spravovat kanály NuGet, najdete v dotnet restore dokumentaci.

Tento příkaz podporuje dotnet restore Možnosti, pokud jsou předány v dlouhé formě (například --source ). Možnosti krátkého tvaru, jako například -s , nejsou podporovány.

Stažení manifestu úlohy

Když spustíte tento příkaz, inicializuje asynchronní stahování reklamních manifestů na pozadí pro úlohy. Pokud je stahování pořád spuštěné po dokončení tohoto příkazu, stahování se zastaví. Další informace najdete v tématu inzerování manifestů.

Argumenty

PROJECT | SOLUTION

Projekt nebo řešení, které chcete zabalit. Je to buď 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

  • -c|--configuration <CONFIGURATION>

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

  • --force

    Vynutí vyřešení všech závislostí i v případě, že poslední obnovení bylo úspěšné. Zadání tohoto příznaku je stejné jako při odstranění project.assets.jssouboru.

  • -?|-h|--help

    Vytiskne popis použití příkazu .

  • --include-source

    Zahrnuje symboly ladění NuGet balíčky kromě běžných NuGet ve výstupním adresáři. Soubory zdrojů jsou zahrnuty ve src složce v balíčku symbolů.

  • --include-symbols

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

  • --interactive

    Umožňuje zastavení příkazu zastavit a počkat na vstup nebo akci uživatele. Například k dokončení ověřování. K dispozici od verze .NET Core 3,0 SDK.

  • --no-build

    Nevytváří projekt před zabalením. Příznak také implicitně --no-restore nastavuje.

  • --no-dependencies

    Ignoruje odkazy mezi projekty a obnoví pouze kořenový projekt.

  • --no-restore

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

  • --nologo

    Nezobrazí se úvodní banner ani zpráva o autorských právech. K dispozici od verze .NET Core 3.0 SDK.

  • -o|--output <OUTPUT_DIRECTORY>

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

  • --runtime <RUNTIME_IDENTIFIER>

    Určuje cílový modul runtime, pro který se balíčky obnoví. Seznam identifikátorů modulu runtime (RID) najdete v katalogu identifikátorů RID.

  • -s|--serviceable

    Nastaví příznak serviceable v balíčku. Další informace najdete v blogu .NET: .NET Framework 4.5.1podporuje aktualizace zabezpečení společnosti Microsoft pro knihovny NuGet .NET.

  • -v|--verbosity <LEVEL>

    Nastaví úroveň podrobností příkazu. Povolené hodnoty jsou q[uiet] , , , a m[inimal] n[ormal] d[etailed] 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 vlastností a , jak je Version VersionPrefix 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 a ne do souboru VersionPrefix Version projektu. Pokud je například VersionPrefix a 0.1.2 předáte --version-suffix rc1 do , bude verze balíčku dotnet pack 0.1.2-rc1 .

    Pokud Version má hodnotu a předáte do , bude hodnota --version-suffix dotnet pack zadaná pro --version-suffix 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 v aktuálním adresáři do nupkgs složky a přeskočte krok sestavení:

    dotnet pack --no-build --output nupkgs
    
  • S příponou verze projektu nakonfigurovanou jako v souboru .csproj zabalte aktuální projekt a aktualizujte výslednou verzi balíčku s <VersionSuffix>$(VersionSuffix)</VersionSuffix> danou příponou:

    dotnet pack --version-suffix "ci-1234"
    
  • Nastavte verzi balíčku na 2.1.0 s PackageVersion vlastností MSBuild:

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

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

    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 , a , najdete v následujících NuspecBasePath NuspecProperties zdrojích informací: