dotnet builddotnet build

Dieser Artikel gilt für: ✔️ .NET Core 2.x SDK und neuere VersionenThis article applies to: ✔️ .NET Core 2.x SDK and later versions

nameName

dotnet build: Erstellt ein Projekt und alle seine Abhängigkeitendotnet build - Builds a project and all of its dependencies.

ÜbersichtSynopsis

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

dotnet build -h|--help

BeschreibungDescription

Der dotnet build-Befehl erstellt das Projekt und die zugehörigen Abhängigkeiten in einen Satz von Binärdateien.The dotnet build command builds the project and its dependencies into a set of binaries. Die Binärdateien enthalten den Projektcode in IL-Dateien (Intermediate Language) mit der Erweiterung DLL.The binaries include the project's code in Intermediate Language (IL) files with a .dll extension. Abhängig vom Projekttyp und den Einstellungen können auch andere Dateien enthalten sein, beispielsweise:Depending on the project type and settings, other files may be included, such as:

  • Eine ausführbare Datei, die zum Ausführen der Anwendung verwendet werden kann, wenn der Projekttyp eine ausführbare Datei für .NET Core 3.0 oder höher ist.An executable that can be used to run the application, if the project type is an executable targeting .NET Core 3.0 or later.
  • Symboldateien mit der Erweiterung PDB, die für das Debuggen verwendet werden.Symbol files used for debugging with a .pdb extension.
  • Eine Datei .deps.json, die die Abhängigkeiten der Anwendung oder Bibliothek auflistet.A .deps.json file, which lists the dependencies of the application or library.
  • Eine Datei .runtimeconfig.json, die die freigegebene Laufzeit und deren Version für eine Anwendung angibt.A .runtimeconfig.json file, which specifies the shared runtime and its version for an application.
  • Andere Bibliotheken, von denen das Projekt abhängig ist (über Projektverweise oder NuGet-Paketverweise).Other libraries that the project depends on (via project references or NuGet package references).

Bei ausführbaren Projekten für frühere Versionen als .NET Core 3.0 werden Bibliotheksabhängigkeiten von NuGet in der Regel NICHT in den Ausgabeordner kopiert.For executable projects targeting versions earlier than .NET Core 3.0, library dependencies from NuGet are typically NOT copied to the output folder. Sie werden zur Laufzeit aus dem NuGet-Ordner für globale Pakete aufgelöst.They're resolved from the NuGet global packages folder at run time. Bedenken Sie, dass das Produkt von dotnet build nicht auf einen anderen Computer zur Ausführung übertragen werden kann.With that in mind, the product of dotnet build isn't ready to be transferred to another machine to run. Zum Erstellen einer Version der Anwendung, die bereitgestellt werden kann, müssen Sie sie veröffentlichen (z.B. mit dem Befehl dotnet publish).To create a version of the application that can be deployed, you need to publish it (for example, with the dotnet publish command). Weitere Informationen finden Sie unter .NET Core Anwendungsbereitstellung.For more information, see .NET Core Application Deployment.

Bei ausführbaren Projekten für .NET Core 3.0 oder höher werden Bibliotheksabhängigkeiten in den Ausgabeordner kopiert.For executable projects targeting .NET Core 3.0 and later, library dependencies are copied to the output folder. Dies bedeutet, dass die Buildausgabe bereitstellbar sein sollte, wenn keine andere veröffentlichungsspezifische Logik (wie bei Webprojekten) vorhanden ist.This means that if there isn't any other publish-specific logic (such as Web projects have), the build output should be deployable.

Implizite WiederherstellungImplicit restore

Das Erstellen erfordert die project.assets.json-Datei, die die Abhängigkeiten Ihrer Anwendung aufführt.Building requires the project.assets.json file, which lists the dependencies of your application. Die Datei wird erstellt, wenn dotnet restore ausgeführt wird.The file is created when dotnet restore is executed. Ohne die vorhandenen Ressourcendateien kann das Tool die Verweisassemblys nicht auflösen, was zu Fehlern führt.Without the assets file in place, the tooling can't resolve reference assemblies, which results in errors.

Sie müssen dotnet restore nicht ausführen, da der Befehl implizit von allen Befehlen ausgeführt wird, die eine Wiederherstellung erfordern. Zu diesen zählen z. B. dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish und dotnet pack.You don't have to run dotnet restore because it's run implicitly by all commands that require a restore to occur, such as dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish, and dotnet pack. Verwenden Sie die Option --no-restore, um die implizite Wiederherstellung zu deaktivieren.To disable implicit restore, use the --no-restore option.

In bestimmten Fällen eignet sich der dotnet restore-Befehl dennoch. Dies ist etwa bei Szenarios der Fall, in denen die explizite Wiederherstellung sinnvoll ist. Beispiele hierfür sind Continuous Integration-Builds in Azure DevOps Services oder Buildsysteme, die den Zeitpunkt für die Wiederherstellung explizit steuern müssen.The dotnet restore command is still useful in certain scenarios where explicitly restoring makes sense, such as continuous integration builds in Azure DevOps Services or in build systems that need to explicitly control when the restore occurs.

Informationen zum Verwalten von NuGet-Feeds finden Sie in der dotnet restoreDokumentation.For information about how to manage NuGet feeds, see the dotnet restore documentation.

Dieser Befehl unterstützt die dotnet restore-Optionen, wenn sie in der Langform (z. B. --source) übergeben werden.This command supports the dotnet restore options when passed in the long form (for example, --source). Optionen in Kurzform wie z.B. -s werden nicht unterstützt.Short form options, such as -s, are not supported.

Ausgabe der ausführbaren Datei oder BibliothekExecutable or library output

Ob das Projekt ausführbar ist oder nicht, richtet sich nach der <OutputType>-Eigenschaft in der Projektdatei.Whether the project is executable or not is determined by the <OutputType> property in the project file. Das folgende Beispiel zeigt ein Projekt, das ausführbaren Code erzeugt:The following example shows a project that produces executable code:

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

Um eine Bibliothek zu generieren, lassen Sie die Eigenschaft <OutputType> weg, oder ändern Sie ihren Wert in Library.To produce a library, omit the <OutputType> property or change its value to Library. Die IL-DLL für eine Bibliothek enthält keine Einstiegspunkte und kann nicht ausgeführt werden.The IL DLL for a library doesn't contain entry points and can't be executed.

MSBuildMSBuild

dotnet build verwendet MSBuild zum Erstellen des Projekts und unterstützt daher parallele und inkrementelle Builds.dotnet build uses MSBuild to build the project, so it supports both parallel and incremental builds. Weitere Informationen finden Sie unter Incremental Builds (Inkrementelle Builds).For more information, see Incremental Builds.

Zusätzlich zu diesen Optionen akzeptiert der dotnet build-Befehl MSBuild-Optionen, wie z.B. -p zum Festlegen von Eigenschaften oder -l zum Definieren eines Protokolls.In addition to its options, the dotnet build command accepts MSBuild options, such as -p for setting properties or -l to define a logger. Weitere Informationen zu diesen Optionen finden Sie in der MSBuild-Befehlszeilenreferenz.For more information about these options, see the MSBuild Command-Line Reference. Sie können auch den Befehl dotnet msbuild verwenden.Or you can also use the dotnet msbuild command.

Das Ausführen von dotnet build entspricht der Ausführung von dotnet msbuild -restore. Die Standardausführlichkeit der Ausgabe unterscheidet sich jedoch.Running dotnet build is equivalent to running dotnet msbuild -restore; however, the default verbosity of the output is different.

ArgumenteArguments

PROJECT | SOLUTION

Die zu erstellende Projekt- oder Projektmappendatei.The project or solution file to build. Wenn Sie keine Projekt- oder Projektmappendatei angeben, durchsucht MSBuild das aktuelle Arbeitsverzeichnis nach einer Dateierweiterung, die mit proj oder sln endet, und verwendet diese.If a project or solution file isn't specified, MSBuild searches the current working directory for a file that has a file extension that ends in either proj or sln and uses that file.

OptionenOptions

  • -c|--configuration <CONFIGURATION>

    Legt die Buildkonfiguration fest.Defines the build configuration. Der Standardwert für die meisten Projekte ist Debug, aber Sie können die Buildkonfigurationseinstellungen in Ihrem Projekt überschreiben.The default for most projects is Debug, but you can override the build configuration settings in your project.

  • -f|--framework <FRAMEWORK>

    Kompiliert für ein bestimmtes Framework.Compiles for a specific framework. Das Framework muss in der Projektdatei definiert werden.The framework must be defined in the project file.

  • --force

    Erzwingt das Auflösen aller Abhängigkeiten, auch wenn die letzte Wiederherstellung erfolgreich war.Forces all dependencies to be resolved even if the last restore was successful. Dieses Flag anzugeben, entspricht dem Löschen der Datei project.assets.json.Specifying this flag is the same as deleting the project.assets.json file.

  • -h|--help

    Druckt eine kurze Hilfe für den Befehl.Prints out a short help for the command.

  • --interactive

    Ermöglicht dem Befehl, anzuhalten und auf Benutzereingaben oder Aktionen zu warten.Allows the command to stop and wait for user input or action. Beispielsweise, um die Authentifizierung abzuschließen.For example, to complete authentication. Verfügbar seit .NET Core 3.0 SDK.Available since .NET Core 3.0 SDK.

  • --no-dependencies

    Ignoriert Verweise zwischen Projekten (P2P) und erstellt nur das angegebene Stammprojekt.Ignores project-to-project (P2P) references and only builds the specified root project.

  • --no-incremental

    Markiert den Build als unsicher für inkrementelle Builds.Marks the build as unsafe for incremental build. Das Flag deaktiviert die inkrementelle Kompilierung und erzwingt eine komplette Neuerstellung des Abhängigkeitsdiagramms des Projekts.This flag turns off incremental compilation and forces a clean rebuild of the project's dependency graph.

  • --no-restore

    Führt keine implizite Wiederherstellung während der Projekterstellung durch.Doesn't execute an implicit restore during build.

  • --nologo

    Unterdrückt die Anzeige von Startbanner und Copyrightmeldung.Doesn't display the startup banner or the copyright message. Verfügbar seit .NET Core 3.0 SDK.Available since .NET Core 3.0 SDK.

  • -o|--output <OUTPUT_DIRECTORY>

    Verzeichnis, in dem die erstellten Binärdateien platziert werden.Directory in which to place the built binaries. Wenn nicht angegeben, ist der Standardpfad ./bin/<configuration>/<framework>/.If not specified, the default path is ./bin/<configuration>/<framework>/. Bei Projekten mit mehreren Zielframeworks (über die TargetFrameworks-Eigenschaft) müssen Sie auch --framework definieren, wenn Sie diese Option angeben.For projects with multiple target frameworks (via the TargetFrameworks property), you also need to define --framework when you specify this option.

  • -r|--runtime <RUNTIME_IDENTIFIER>

    Legt die Ziellaufzeit fest.Specifies the target runtime. Eine Liste der Runtime-IDs (RIDs) finden Sie unter RID-Katalog.For a list of Runtime Identifiers (RIDs), see the RID catalog.

  • --source <SOURCE>

    Der URI der NuGet-Paketquelle, die während des Wiederherstellungsvorgangs zu verwenden ist.The URI of the NuGet package source to use during the restore operation.

  • -v|--verbosity <LEVEL>

    Legt den MSBuild-Ausführlichkeitsgrad fest.Sets the MSBuild verbosity level. Zulässige Werte sind q[uiet], m[inimal], n[ormal], d[etailed] und diag[nostic].Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. Der Standardwert ist minimal.The default is minimal.

  • --version-suffix <VERSION_SUFFIX>

    Hiermit wird der Wert der $(VersionSuffix)-Eigenschaft festgelegt, die beim Erstellen des Projekts verwendet werden soll.Sets the value of the $(VersionSuffix) property to use when building the project. Dies funktioniert nur, wenn die $(Version)-Eigenschaft nicht festgelegt ist.This only works if the $(Version) property isn't set. Dann wird $(Version) auf $(VersionPrefix) festgelegt, kombiniert mit dem $(VersionSuffix), getrennt durch einen Bindestrich.Then, $(Version) is set to the $(VersionPrefix) combined with the $(VersionSuffix), separated by a dash.

BeispieleExamples

  • Erstellt ein Projekt und seine Abhängigkeiten:Build a project and its dependencies:

    dotnet build
    
  • Erstellt ein Projekt und seine Abhängigkeiten mithilfe der Release-Konfiguration:Build a project and its dependencies using Release configuration:

    dotnet build --configuration Release
    
  • Erstellt ein Projekt und seine Abhängigkeiten für eine bestimmte Laufzeit (in diesem Beispiel Ubuntu 18.04):Build a project and its dependencies for a specific runtime (in this example, Ubuntu 18.04):

    dotnet build --runtime ubuntu.18.04-x64
    
  • Erstellt ein Projekt und verwendet die angegebene NuGet-Paketquelle während des Wiederherstellungsvorgangs (.NET Core 2.0 SDK und spätere Versionen):Build the project and use the specified NuGet package source during the restore operation (.NET Core 2.0 SDK and later versions):

    dotnet build --source c:\packages\mypackages
    
  • Erstellen eines Projekts und festlegen der Version 1.2.3.4 als Buildparameter mithilfe der -pMSBuild-Option:Build the project and set version 1.2.3.4 as a build parameter using the -p MSBuild option:

    dotnet build -p:Version=1.2.3.4