dotnet packdotnet pack

Cette rubrique s’applique au : ✓ SDK .NET Core 1.x SDK .NET Core 2.xThis topic applies to: ✓ .NET Core 1.x SDK .NET Core 2.x SDK

NameName

dotnet pack : Place le code dans un package NuGet.dotnet pack - Packs the code into a NuGet package.

RésuméSynopsis

dotnet pack [<PROJECT>] [-c|--configuration] [--force] [--include-source] [--include-symbols] [--no-build] [--no-dependencies]
    [--no-restore] [-o|--output] [--runtime] [-s|--serviceable] [-v|--verbosity] [--version-suffix]
dotnet pack [-h|--help]

DescriptionDescription

La commande dotnet pack génère le projet et crée les packages NuGet.The dotnet pack command builds the project and creates NuGet packages. Le résultat de cette commande est un package NuGet.The result of this command is a NuGet package. Si l’option --include-symbols est présente, un autre package contenant les symboles de débogage est créé.If the --include-symbols option is present, another package containing the debug symbols is created.

Les dépendances NuGet du projet empaqueté sont ajoutées dans le fichier  .nuspec, pour pouvoir être correctement résolues lors de l’installation du package.NuGet dependencies of the packed project are added to the .nuspec file, so they're properly resolved when the package is installed. Les références entre projets ne sont pas empaquetées à l’intérieur du projet.Project-to-project references aren't packaged inside the project. Actuellement, vous devez disposer d’un package par projet si vous avez des dépendances entre projets.Currently, you must have a package per project if you have project-to-project dependencies.

Par défaut, dotnet pack génère d’abord le projet.By default, dotnet pack builds the project first. Pour éviter ce comportement, passez l’option --no-build.If you wish to avoid this behavior, pass the --no-build option. Cette option s’avère souvent utile dans les scénarios de build d’intégration continue (CI), pour lesquels vous savez que le code a déjà été créé.This option is often useful in Continuous Integration (CI) build scenarios where you know the code was previously built.

Vous pouvez fournir des propriétés MSBuild à la commande dotnet pack pour le processus de compression.You can provide MSBuild properties to the dotnet pack command for the packing process. Pour plus d’informations, consultez Propriétés des métadonnées NuGet et Informations de référence sur la ligne de commande MSBuild.For more information, see NuGet metadata properties and the MSBuild Command-Line Reference. La section Exemples montre comment utiliser le commutateur MSBuild -p pour deux scénarios différents.The Examples section shows how to use the MSBuild -p switch for a couple of different scenarios.

Par défaut, les projets web ne peuvent pas être ajoutés dans un package.Web projects aren't packable by default. Pour remplacer le comportement par défaut, ajoutez la propriété suivante à votre fichier .csproj :To override the default behavior, add the following property to your .csproj file:

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

Notes

À compter de .NET Core 2.0, vous ne devez pas 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, such as dotnet build and dotnet run, that require a restore to occur. 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.

ArgumentsArguments

  • PROJECT

    Projet à empaqueter.The project to pack. Il s’agit du chemin d’accès d’un fichier csproj ou d’un répertoire.It's either a path to a csproj file or to a directory. Si aucune valeur n’est spécifiée, le répertoire actif est utilisé par défaut.If not specified, it defaults to the current directory.

OptionsOptions

  • -c|--configuration {Debug|Release}

    Définit la configuration de build.Defines the build configuration. La valeur par défaut est Debug.The default value is Debug.

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

  • --include-source

    Inclut les fichiers sources dans le package NuGet.Includes the source files in the NuGet package. Les fichiers sources sont inclus dans le dossier src de nupkg.The sources files are included in the src folder within the nupkg.

  • --include-symbols

    Génère les symboles nupkg.Generates the symbols nupkg.

  • --no-build

    Ne génère pas le projet avant de créer le package.Doesn't build the project before packing. L’indicateur --no-restore est également défini implicitement.It also implicitly sets the --no-restore flag.

  • --no-dependencies

    Ignore les références entre projets et restaure uniquement le projet racine.Ignores project-to-project references and only restores the root project.

  • --no-restore

    N’effectue pas de restauration implicite à l’exécution de la commande.Doesn't execute an implicit restore when running the command.

  • -o|--output <OUTPUT_DIRECTORY>

    Place les packages générés dans le répertoire spécifié.Places the built packages in the directory specified.

  • --runtime <RUNTIME_IDENTIFIER>

    Spécifie le runtime cible pour lequel restaurer les packages.Specifies the target runtime to restore packages for. 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.

  • -s|--serviceable

    Définit l’indicateur d’un état pouvant faire l’objet d’une maintenance dans le package.Sets the serviceable flag in the package. Pour plus d’informations, consultez Blog .NET : .NET 4.5.1 prend en charge les mises à jour de sécurité de Microsoft pour les bibliothèques NuGet .NET.For more information, see .NET Blog: .NET 4.5.1 Supports Microsoft Security Updates for .NET NuGet Libraries.

  • --version-suffix <VERSION_SUFFIX>

    Définit la valeur de la propriété MSBuild $(VersionSuffix) dans le projet.Defines the value for the $(VersionSuffix) MSBuild property in the project.

  • -v|--verbosity <LEVEL>

    Définit le niveau de détail de la commande.Sets the verbosity level of the command. 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].

ExemplesExamples

  • Empaquetez le projet dans le répertoire actif :Pack the project in the current directory:

    dotnet pack
    
  • Empaqueter le projet app1 :Pack the app1 project:

    dotnet pack ~/projects/app1/project.csproj
    
  • Empaqueter le projet dans le répertoire actif et placer les packages résultants dans le dossier nupkgs :Pack the project in the current directory and place the resulting packages into the nupkgs folder:

    dotnet pack --output nupkgs
    
  • Empaqueter le projet dans le répertoire actif du dossier nupkgs et ignorer l’étape de génération :Pack the project in the current directory into the nupkgs folder and skip the build step:

    dotnet pack --no-build --output nupkgs
    
  • Avec le suffixe de version du projet configuré comme <VersionSuffix>$(VersionSuffix)</VersionSuffix> dans le fichier .csproj, empaqueter le projet actif et mettre à jour la version du package obtenue avec le suffixe donné :With the project's version suffix configured as <VersionSuffix>$(VersionSuffix)</VersionSuffix> in the .csproj file, pack the current project and update the resulting package version with the given suffix:

    dotnet pack --version-suffix "ci-1234"
    
  • Affectez 2.1.0 à la version du package à l’aide de la propriété MSBuild PackageVersion :Set the package version to 2.1.0 with the PackageVersion MSBuild property:

    dotnet pack -p:PackageVersion=2.1.0
    
  • Empaquetez le projet pour un framework cible spécifique :Pack the project for a specific target framework:

    dotnet pack -p:TargetFrameworks=net45
    
  • Empaqueter le projet et utiliser un runtime spécifique (Windows 10) pour l’opération de restauration (SDK .NET Core 2.0 et versions ultérieures) :Pack the project and use a specific runtime (Windows 10) for the restore operation (.NET Core SDK 2.0 and later versions):

    dotnet pack --runtime win10-x64
    
  • Empaquetez le projet à l’aide d’un fichier .nuspec :Pack the project using a .nuspec file:

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