dotnet builddotnet build

Cet article s’applique à : ✔️ Kit de développement logiciel (SDK) .net Core 2. x et versions ultérieuresThis article applies to: ✔️ .NET Core 2.x SDK and later versions

NameName

dotnet build : Génère un projet et l’ensemble de ses dépendances.dotnet build - Builds a project and all of its dependencies.

SynopsisSynopsis

dotnet build [<PROJECT>|<SOLUTION>] [-c|--configuration] [-f|--framework] [--force]
    [--interactive] [--no-dependencies] [--no-incremental] [--no-restore] [--nologo]
    [-o|--output] [-r|--runtime] [-v|--verbosity] [--version-suffix]

dotnet build [-h|--help]

DescriptionDescription

La commande dotnet build génère le projet et ses dépendances dans un ensemble de fichiers binaires.The dotnet build command builds the project and its dependencies into a set of binaries. Les binaires incluent le code du projet dans des fichiers de langage intermédiaire (IL) avec une extension . dll .The binaries include the project's code in Intermediate Language (IL) files with a .dll extension. En fonction du type de projet et des paramètres, d’autres fichiers peuvent être inclus, par exemple :Depending on the project type and settings, other files may be included, such as:

  • Exécutable qui peut être utilisé pour exécuter l’application, si le type de projet est un exécutable ciblant .NET Core 3,0 ou une version ultérieure.An executable that can be used to run the application, if the project type is an executable targeting .NET Core 3.0 or later.
  • Fichiers de symboles utilisés pour le débogage avec une extension . pdb .Symbol files used for debugging with a .pdb extension.
  • Un fichier . DEPS. JSON , qui répertorie les dépendances de l’application ou de la bibliothèque.A .deps.json file, which lists the dependencies of the application or library.
  • Un fichier . runtimeconfig. JSON , qui spécifie le runtime partagé et sa version pour une application.A .runtimeconfig.json file, which specifies the shared runtime and its version for an application.
  • Les autres bibliothèques dont le projet dépend (par le biais de références de projet ou de références de package NuGet).Other libraries that the project depends on (via project references or NuGet package references).

Pour les projets exécutables ciblant des versions antérieures à .NET Core 3,0, les dépendances de bibliothèque de NuGet ne sont généralement pas copiées dans le dossier de sortie.For executable projects targeting versions earlier than .NET Core 3.0, library dependencies from NuGet are typically NOT copied to the output folder. Ils sont résolus à partir du dossier des packages globaux NuGet au moment de l’exécution.They're resolved from the NuGet global packages folder at run time. Par conséquent, le produit de dotnet build ne peut pas être transféré en l’état vers un autre ordinateur pour exécution.With that in mind, the product of dotnet build isn't ready to be transferred to another machine to run. Pour créer une version de l’application qui peut être déployée, vous devez la publier (par exemple, à l’aide de la commande 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). Pour plus d’informations, consultez la page Déploiement d’applications .NET Core.For more information, see .NET Core Application Deployment.

Pour les projets exécutables ciblant .NET Core 3,0 et versions ultérieures, les dépendances de bibliothèque sont copiées dans le dossier de sortie.For executable projects targeting .NET Core 3.0 and later, library dependencies are copied to the output folder. Cela signifie que s’il n’existe aucune autre logique spécifique à la publication (telle que les projets Web), la sortie de la génération doit être déployée.This means that if there isn't any other publish-specific logic (such as Web projects have), the build output should be deployable.

La génération requiert le fichier project.assets.json qui répertorie les dépendances de votre application.Building requires the project.assets.json file, which lists the dependencies of your application. Le fichier est créé quand la commande dotnet restore est exécutée.The file is created when dotnet restore is executed. Si le fichier de ressources est absent, les outils ne peuvent pas résoudre les assemblys de référence, ce qui entraîne des erreurs.Without the assets file in place, the tooling can't resolve reference assemblies, which results in errors. Avec le kit de développement logiciel (SDK) .NET Core 1. x, vous deviez exécuter explicitement dotnet restore avant d’exécuter dotnet build.With .NET Core 1.x SDK, you needed to explicitly run dotnet restore before running dotnet build. À compter du SDK .NET Core 2.0, dotnet restore s’exécute implicitement quand vous exécutez dotnet build.Starting with .NET Core 2.0 SDK, dotnet restore runs implicitly when you run dotnet build. Si vous souhaitez désactiver la restauration implicite au moment d’exécuter la commande de génération, vous pouvez passer l’option --no-restore.If you want to disable implicit restore when running the build command, you can pass the --no-restore option.

Notes

À compter de .NET Core 2,0, vous n’êtes pas obligé d’exécuter dotnet restore , car il est exécuté implicitement par toutes les commandes qui nécessitent une restauration, comme dotnet build et dotnet run.Starting with .NET Core 2.0, 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 build and dotnet run. Cette commande reste néanmoins valide dans certains scénarios où une restauration explicite est nécessaire, comme des builds d’intégration continue dans Azure DevOps Services ou dans les systèmes de génération qui doivent contrôler explicitement le moment auquel la restauration se produit.It's still a valid command in certain scenarios where doing an explicit restore makes sense, such as continuous integration builds in Azure DevOps Services or in build systems that need to explicitly control the time at which the restore occurs.

Cette commande prend également en charge les options de dotnet restore quand elles sont passées sous leur forme longue (par exemple --source).This command also supports the dotnet restore options when passed in the long form (for example, --source). Les options sous forme abrégée, comme -s, ne sont pas prises en charge.Short form options, such as -s, are not supported.

La possibilité d’exécuter le projet ou non est déterminée par la propriété <OutputType> dans le fichier projet.Whether the project is executable or not is determined by the <OutputType> property in the project file. L’exemple suivant illustre un projet qui génère du code exécutable :The following example shows a project that produces executable code:

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

Pour produire une bibliothèque, omettez la propriété <OutputType> ou remplacez sa valeur par Library.To produce a library, omit the <OutputType> property or change its value to Library. La DLL IL d’une bibliothèque ne contient pas de points d’entrée et ne peut pas être exécutée.The IL DLL for a library doesn't contain entry points and can't be executed.

MSBuildMSBuild

La commande dotnet build utilise MSBuild pour générer le projet. Elle prend donc en charge les builds parallèles et les builds incrémentielles.dotnet build uses MSBuild to build the project, so it supports both parallel and incremental builds. Pour plus d’informations, consultez l’article Incremental Builds (Générations incrémentielles) .For more information, see Incremental Builds.

En plus de ses options, la commande dotnet build accepte des options MSBuild, comme -p pour définir des propriétés ou -l pour définir un enregistreur d’événements.In addition to its options, the dotnet build command accepts MSBuild options, such as -p for setting properties or -l to define a logger. Pour plus d’informations sur ces options, consultez Informations de référence sur la ligne de commande MSBuild.For more information about these options, see the MSBuild Command-Line Reference. Ou vous pouvez également utiliser la commande dotnet msbuild.Or you can also use the dotnet msbuild command.

L’exécution de dotnet build est équivalente à l’exécution de dotnet msbuild -restore; Toutefois, le niveau de détail par défaut de la sortie est différent.Running dotnet build is equivalent to running dotnet msbuild -restore; however, the default verbosity of the output is different.

ArgumentsArguments

PROJECT | SOLUTION

Le fichier projet ou solution à générer.The project or solution file to build. Si vous ne spécifiez pas de fichier projet ou solution, MSBuild recherche dans le répertoire de travail actif un fichier dont l’extension se termine par proj ou sln et l’utilise.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.

OptionsOptions

  • -c|--configuration <CONFIGURATION>

    Définit la configuration de build.Defines the build configuration. La valeur par défaut pour la plupart des projets est Debug, mais vous pouvez remplacer les paramètres de configuration de build dans votre projet.The default for most projects is Debug, but you can override the build configuration settings in your project.

  • -f|--framework <FRAMEWORK>

    Compile pour un framework spécifique.Compiles for a specific framework. Le framework doit être défini dans le fichier projet.The framework must be defined in the project file.

  • --force

    Force la résolution de toutes les dépendances même si la dernière restauration a réussi.Forces all dependencies to be resolved even if the last restore was successful. Définir cet indicateur revient à supprimer le fichier project.assets.json.Specifying this flag is the same as deleting the project.assets.json file.

  • -h|--help

    Affiche une aide brève pour la commande.Prints out a short help for the command.

  • --interactive

    Permet à la commande de s’arrêter et d’attendre une action ou une entrée utilisateur.Allows the command to stop and wait for user input or action. Par exemple, pour effectuer une authentification.For example, to complete authentication. Disponible à partir du kit SDK .NET Core 3.0.Available since .NET Core 3.0 SDK.

  • --no-dependencies

    Ignore les références entre projets (P2P) et génère uniquement le projet racine spécifié.Ignores project-to-project (P2P) references and only builds the specified root project.

  • --no-incremental

    Marque la build comme unsafe pour la génération incrémentielle.Marks the build as unsafe for incremental build. Cet indicateur désactive la compilation incrémentielle et force une regénération du graphique de dépendance du projet.This flag turns off incremental compilation and forces a clean rebuild of the project's dependency graph.

  • --no-restore

    N’exécute pas de restauration implicite pendant la génération.Doesn't execute an implicit restore during build.

  • --nologo

    N’affiche pas la bannière de démarrage ni le message de copyright.Doesn't display the startup banner or the copyright message. Disponible à partir du kit SDK .NET Core 3.0.Available since .NET Core 3.0 SDK.

  • -o|--output <OUTPUT_DIRECTORY>

    Répertoire dans lequel placer les fichiers binaires générés.Directory in which to place the built binaries. S’il n’est pas spécifié, le chemin d'accès par défaut est ./bin/<configuration>/<framework>/.If not specified, the default path is ./bin/<configuration>/<framework>/. Pour les projets avec plusieurs frameworks cibles (via la propriété TargetFrameworks), vous devez également définir des --framework lorsque vous spécifiez cette option.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>

    Spécifie le runtime cible.Specifies the target runtime. Pour connaître les identificateurs de runtime, consultez le catalogue des identificateurs de runtime.For a list of Runtime Identifiers (RIDs), see the RID catalog.

  • -v|--verbosity <LEVEL>

    Définit le niveau de détail MSBuild.Sets the MSBuild verbosity level. Les valeurs autorisées sont q[uiet], m[inimal], n[ormal], d[etailed] et diag[nostic].Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. Par défaut, il s’agit de minimal.The default is minimal.

  • --version-suffix <VERSION_SUFFIX>

    Définit la valeur de la propriété $(VersionSuffix) à utiliser lors de la génération du projet.Sets the value of the $(VersionSuffix) property to use when building the project. Cela fonctionne uniquement si la propriété $(Version) n’est pas définie.This only works if the $(Version) property isn't set. Ensuite, $(Version) est défini sur $(VersionPrefix) combiné avec $(VersionSuffix), séparés par un tiret.Then, $(Version) is set to the $(VersionPrefix) combined with the $(VersionSuffix), separated by a dash.

ExemplesExamples

  • Générer un projet et ses dépendances :Build a project and its dependencies:

    dotnet build
    
  • Générer un projet et ses dépendances à l’aide de la configuration Release :Build a project and its dependencies using Release configuration:

    dotnet build --configuration Release
    
  • Générer un projet et ses dépendances pour un runtime spécifique (dans cet exemple, 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
    
  • Générer le projet et utiliser la source de package NuGet spécifiée pendant l’opération de restauration (SDK .NET Core 2.0 et versions ultérieures) :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
    
  • Générez le projet et définissez la version 1.2.3.4 comme paramètre de build à l’aide de l' option -p MSBuild: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