dotnet build

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

Name

dotnet build - Vytvoří projekt a všechny jeho závislosti.

Synopse

dotnet build [<PROJECT>|<SOLUTION>] [-a|--arch <ARCHITECTURE>]
    [-c|--configuration <CONFIGURATION>] [-f|--framework <FRAMEWORK>]
    [--force] [--interactive] [--no-dependencies] [--no-incremental]
    [--no-restore] [--nologo] [--no-self-contained] [--os <OS>]
    [-o|--output <OUTPUT_DIRECTORY>] [-r|--runtime <RUNTIME_IDENTIFIER>]
    [--self-contained [true|false]] [--source <SOURCE>]
    [-v|--verbosity <LEVEL>] [--version-suffix <VERSION_SUFFIX>]

dotnet build -h|--help

Popis

Příkaz dotnet build sestaví projekt a jeho závislosti do sady binárních souborů. Binární soubory zahrnují kód projektu v souborech IL (Intermediate Language) s příponou.dll . V závislosti na typu a nastavení projektu můžou být zahrnuté další soubory, například:

  • Spustitelný soubor, který lze použít ke spuštění aplikace, pokud je typ projektu spustitelný soubor určený pro .NET Core 3.0 nebo novější.
  • Soubory symbolů používané k ladění s příponou .pdb .
  • Soubor .deps.json , který uvádí závislosti aplikace nebo knihovny.
  • Soubor .runtimeconfig.json , který určuje sdílený modul runtime a jeho verzi pro aplikaci.
  • Jiné knihovny, na které projekt závisí (prostřednictvím odkazů na projekt nebo NuGet odkazů na balíčky).

U spustitelných projektů, které cílí na verze starší než .NET Core 3.0, se závislosti knihoven z NuGet obvykle do výstupní složky nekopírují. Řeší se ze složky globálních balíčků NuGet za běhu. S ohledem na to není produkt připravený k přenosu do jiného dotnet build počítače, který se má spustit. Pokud chcete vytvořit verzi aplikace, kterou je možné nasadit, musíte ji publikovat (například pomocí příkazu dotnet publish ). Další informace najdete v tématu Nasazení aplikace .NET.

U spustitelných projektů, které cílí na .NET Core 3.0 a novější, se závislosti knihoven zkopírují do výstupní složky. To znamená, že pokud neexistuje žádná jiná logika specifická pro publikování (například webové projekty), měl by být výstup sestavení nasaditelný.

Implicitní obnovení

Sestavení vyžaduje soubor project.assets.json , který uvádí závislosti vaší aplikace. Soubor se vytvoří při dotnet restore spuštění. Bez souboru prostředků nejde nástroj vyřešit referenční sestavení, což vede k chybám.

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.

Výstup spustitelného souboru nebo knihovny

Zda je projekt spustitelný nebo není určen vlastností <OutputType> v souboru projektu. Následující příklad ukazuje projekt, který vytváří spustitelný kód:

<PropertyGroup>
  <OutputType>Exe</OutputType>
</PropertyGroup>

Chcete-li vytvořit knihovnu <OutputType> , vynecháte vlastnost nebo změňte její hodnotu na Library. Knihovna IL DLL pro knihovnu neobsahuje vstupní body a nelze ji spustit.

MSBuild

dotnet buildpoužívá MSBuild k sestavení projektu, takže podporuje paralelní i přírůstkové sestavení. Další informace najdete v tématu Přírůstkové buildy.

Kromě svých možností dotnet build příkaz přijímá MSBuild možnosti, jako -p je nastavení vlastností nebo -l definování protokolovacího nástroje. Další informace o těchto možnostech najdete v tématu MSBuild Command-Line Reference. Můžete také použít příkaz dotnet msbuild .

Poznámka

Když dotnet build se spustí automaticky, dotnet runargumenty, jako -property:property=value jsou nerespektované.

Spuštění dotnet build je ekvivalentní spuštění dotnet msbuild -restore. Výchozí úroveň podrobností výstupu se ale liší.

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

Soubor projektu nebo řešení, který se má sestavit. Pokud není zadaný soubor projektu nebo řešení, MSBuild vyhledá aktuální pracovní adresář pro soubor, který má příponu souboru končící buď proj, nebo sln a používá tento soubor.

Možnosti

  • -a|--arch <ARCHITECTURE>

    Určuje cílovou architekturu. Toto je zkratka pro nastavení identifikátoru runtime (RID), kde se zadaná hodnota zkombinuje s výchozím identifikátorem RID. Například na win-x64 počítači se zadáním --arch x86 identifikátoru RID nastavíte na win-x86. Pokud použijete tuto možnost, tuto možnost nepoužívejte -r|--runtime . K dispozici od .NET 6 Preview 7.

  • -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.

  • -f|--framework <FRAMEWORK>

    Kompiluje se pro konkrétní architekturu. Architektura musí být definována v souboru 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.

  • --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-dependencies

    Ignoruje odkazy typu projekt-to-project (P2P) a vytvoří pouze zadaný kořenový projekt.

  • --no-incremental

    Označí sestavení jako nebezpečné pro přírůstkové sestavení. Tento příznak vypne přírůstkovou kompilaci a vynutí čisté sestavení grafu závislostí projektu.

  • --no-restore

    Během sestavení se nespustí implicitní obnovení.

  • --nologo

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

  • --no-self-contained

    Publikuje aplikaci jako aplikaci závislá na rozhraní. Aby bylo možné aplikaci spustit, musí být na cílovém počítači nainstalován kompatibilní modul runtime .NET. K dispozici od sady .NET 6 SDK.

  • -o|--output <OUTPUT_DIRECTORY>

    Adresář, do kterého se mají umístit vytvořené binární soubory. Pokud není zadána, výchozí cesta je ./bin/<configuration>/<framework>/. U projektů s více cílovými architekturami (prostřednictvím TargetFrameworks vlastnosti) je také potřeba definovat --framework , když tuto možnost zadáte.

  • --os <OS>

    Určuje cílový operační systém (OS). Toto je zkratka pro nastavení identifikátoru runtime (RID), kde se zadaná hodnota zkombinuje s výchozím identifikátorem RID. Například na win-x64 počítači se zadáním --os linux identifikátoru RID nastavíte na linux-x64. Pokud použijete tuto možnost, tuto možnost nepoužívejte -r|--runtime . K dispozici od .NET 6.

  • -r|--runtime <RUNTIME_IDENTIFIER>

    Určuje cílový modul runtime. Seznam identifikátorů runtime (RID) najdete v katalogu RID. Pokud tuto možnost použijete se sadou .NET 6 SDK, použijte --self-contained nebo --no-self-contained také. Pokud není zadáno, výchozím nastavením je sestavení pro aktuální operační systém a architekturu.

  • --self-contained [true|false]

    Publikuje modul runtime .NET s aplikací, aby se modul runtime nemusel instalovat na cílový počítač. Výchozí hodnota je true , pokud je zadaný identifikátor modulu runtime. K dispozici od sady .NET 6 SDK.

  • --source <SOURCE>

    Identifikátor URI zdroje balíčku NuGet, který se má použít během operace obnovení.

  • -v|--verbosity <LEVEL>

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

  • --version-suffix <VERSION_SUFFIX>

    Nastaví hodnotu $(VersionSuffix) vlastnosti, která se má použít při sestavování projektu. To funguje jenom v případě, že $(Version) vlastnost není nastavená. $(Version) Pak se nastaví na $(VersionPrefix) kombinaci s $(VersionSuffix)čárkou oddělenou pomlčkou.

Příklady

  • Sestavte projekt a jeho závislosti:

    dotnet build
    
  • Pomocí konfigurace vydané verze sestavte projekt a jeho závislosti:

    dotnet build --configuration Release
    
  • Sestavte projekt a jeho závislosti pro konkrétní modul runtime (v tomto příkladu Ubuntu 18.04):

    dotnet build --runtime ubuntu.18.04-x64
    
  • Sestavte projekt a během operace obnovení použijte zadaný zdroj balíčku NuGet:

    dotnet build --source c:\packages\mypackages
    
  • Sestavení projektu a nastavení verze 1.2.3.4 jako parametr sestavení pomocí -pmožnosti MSBuild:

    dotnet build -p:Version=1.2.3.4