Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article s’applique à : ✔️ SDK .NET Core 6 et versions ultérieures
Nom
dotnet pack - Packe le code dans un package NuGet.
Synopsis
dotnet pack [<PROJECT>|<SOLUTION>]
[--artifacts-path <ARTIFACTS_DIR>] [-c|--configuration <CONFIGURATION>]
[--disable-build-servers] [--force] [--include-source] [--include-symbols]
[--interactive] [--no-build] [--no-dependencies] [--no-restore] [--nologo]
[-o|--output <OUTPUT_DIRECTORY>] [--runtime <RUNTIME_IDENTIFIER>]
[-s|--serviceable] [--tl:[auto|on|off]] [-v|--verbosity <LEVEL>]
[--version-suffix <VERSION_SUFFIX>]
dotnet pack -h|--help
Descriptif
La dotnet pack commande génère le projet et crée des packages NuGet. Le résultat de cette commande est un package NuGet (autrement dit, un fichier .nupkg ).
Si vous souhaitez générer un package qui contient les symboles de débogage, vous avez deux options disponibles :
-
--include-symbols- il crée le package de symboles. -
--include-source- il crée le package de symboles avec unsrcdossier dans lequel se trouvent les fichiers sources.
Les dépendances NuGet du projet pack sont ajoutées au fichier .nuspec , de sorte qu’elles sont correctement résolues lorsque le package est installé. Si le projet packé a des références à d’autres projets, les autres projets ne sont pas inclus dans le package. Actuellement, vous devez disposer d’un package par projet si vous avez des dépendances de projet à projet.
Par défaut, dotnet pack génère d’abord le projet. Si vous souhaitez éviter ce comportement, passez l’option --no-build . Cette option est souvent utile dans les scénarios de génération d’intégration continue (CI) où vous savez que le code a été créé précédemment.
Note
Dans certains cas, la build implicite ne peut pas être effectuée. Cela peut se produire lorsqu’il GeneratePackageOnBuild est défini, pour éviter une dépendance cyclique entre les cibles de build et de pack. La build peut également échouer s’il existe un fichier verrouillé ou un autre problème.
Vous pouvez fournir des propriétés MSBuild à la dotnet pack commande pour le processus de compression. Pour plus d’informations, consultez les propriétés cibles du pack NuGet et la référence Command-Line MSBuild. La section Exemples montre comment utiliser le commutateur MSBuild -p pour quelques scénarios différents.
Note
Les projets web ne sont pas packables.
Restauration implicite
Vous n’avez pas besoin d’exécuter dotnet restore, car il est exécuté implicitement par toutes les commandes qui nécessitent une restauration pour se produire, comme dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish et dotnet pack. Pour désactiver la restauration implicite, utilisez l’option --no-restore .
La commande dotnet restore est toujours utile dans certains scénarios où la restauration explicite est logique, comme les 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 où la restauration se produit.
Pour plus d’informations sur la gestion des flux NuGet, consultez la documentation dotnet restore.
Cette commande prend en charge les options de dotnet restore quand elles sont transférées sous leur forme longue (par exemple --source). Les options sous forme abrégée, comme -s, ne sont pas prises en charge.
Téléchargement de manifestes de charge de travail
Lorsque vous exécutez cette commande, elle lance en arrière-plan un téléchargement asynchrone des manifestes publicitaires des charges de travail. Si le téléchargement est toujours en cours lorsque cette commande se termine, celui-ci est arrêté. Pour plus d’informations, consultez Manifestes publicitaires.
Arguments
PROJECT | SOLUTION
Projet ou solution à packer. Il s’agit d’un chemin d’accès à un fichier csproj, vbproj ou fsproj, ou à un fichier ou répertoire de solution. Si elle n’est pas spécifiée, la commande recherche dans le répertoire actif un fichier projet ou solution.
Options
-
--artifacts-path <ARTIFACTS_DIR>Tous les fichiers de sortie de build de la commande exécutée vont dans les sous-dossiers sous le chemin spécifié, séparés par projet. Pour plus d’informations, consultez disposition de sortie d’artefacts. Disponible depuis le Kit de développement logiciel (SDK) .NET 8.
-
-c|--configuration <CONFIGURATION>Définit la configuration de build. Si vous développez avec le Kit de développement logiciel (SDK) .NET 8 ou une version ultérieure, la commande utilise la configuration
Releasepar défaut pour les projets dont TargetFramework est défini surnet8.0ou une version ultérieure. La configuration de build par défaut estDebugpour les versions antérieures du Kit de développement logiciel (SDK) et pour les frameworks cibles antérieurs. Vous pouvez remplacer la valeur par défaut dans les paramètres du projet ou à l’aide de cette option. Pour plus d’informations, consultez « dotnet publish » utilise la configuration release et « dotnet pack » utilise la configuration release. -
--disable-build-serversForce la commande à ignorer tous les serveurs de build persistants. Cette option offre un moyen cohérent de désactiver toute utilisation de la mise en cache de build, ce qui force une build à partir de zéro. Une build qui ne repose pas sur des caches est utile quand les caches peuvent être endommagés ou incorrects pour une raison quelconque. Disponible depuis le SDK .NET 7.
--forceForce la résolution de toutes les dépendances même si la dernière restauration a réussi. Définir cet indicateur revient à supprimer le fichier project.assets.json.
--include-sourceInclut les symboles de débogage des packages NuGet en plus des packages NuGet standard dans le répertoire de sortie. Les fichiers sources sont inclus dans le
srcdossier du package de symboles.--include-symbolsInclut les symboles de débogage des packages NuGet en plus des packages NuGet standard dans le répertoire de sortie.
-
--interactivePermet à la commande de s’arrêter et d’attendre une action ou une entrée utilisateur. Par exemple, pour effectuer une authentification.
--no-buildNe génère pas le projet avant l’empaquetage. L’indicateur
--no-restoreest également défini implicitement.--no-dependenciesIgnore les références de projet à projet et restaure uniquement le projet racine.
--no-restoreN’effectue pas de restauration implicite à l’exécution de la commande.
--nologoN’affiche pas la bannière de démarrage ou le message de copyright.
-o|--output <OUTPUT_DIRECTORY>Place les packages générés dans le répertoire spécifié.
Sdk .NET 7.0.200
Dans le Kit de développement logiciel (SDK) 7.0.200, si vous spécifiez l’option lors de l’exécution
--outputde cette commande sur une solution, l’interface CLI émet une erreur. Il s’agit d’une régression et a été corrigée dans la version 7.0.201 et ultérieure du Kit de développement logiciel (SDK) .NET.
--runtime <RUNTIME_IDENTIFIER>Spécifie le runtime cible pour lequel restaurer les packages. Pour connaître les identificateurs de runtime, consultez le catalogue des identificateurs de runtime.
-s|--serviceableDéfinit l’indicateur serviceable dans le package. Pour plus d’informations, consultez le blog .NET : .NET Framework 4.5.1 prend en charge les mises à jour de sécurité Microsoft pour les bibliothèques NuGet .NET.
-
--tl:[auto|on|off]Spécifie si Terminal Logger doit être utilisé pour la sortie de build. La valeur par défaut est
auto, qui vérifie d’abord l’environnement avant d’activer la journalisation du terminal. La vérification de l’environnement vérifie que le terminal est capable d’utiliser des fonctionnalités de sortie modernes et n’utilise pas une sortie standard redirigée avant d’activer le nouvel enregistreur d’événements.onignore la vérification de l’environnement et active la journalisation du terminal.offignore la vérification de l’environnement et utilise l’enregistreur d’événements de console par défaut.Terminal Logger vous montre la phase de restauration suivie de la phase de génération. Au cours de chaque phase, les projets en cours de génération apparaissent en bas du terminal. Chaque projet en cours de génération génère à la fois la cible MSBuild en cours de génération et le temps consacré à cette cible. Vous pouvez rechercher ces informations pour en savoir plus sur la génération. Lorsque la génération d’un projet est terminée, une unique section « build terminée » est écrite et capture :
- Le nom du projet généré.
- Le framework cible (si plusieurs cibles).
- L’état de cette build.
- La sortie principale de cette génération (qui est un lien hypertexte).
- Les diagnostics générés pour ce projet.
Cette option est disponible à partir de .NET 8.
-
-v|--verbosity <LEVEL>Définit le niveau de détail de la commande. Les valeurs autorisées sont
q[uiet],m[inimal],n[ormal],d[etailed]etdiag[nostic]. Pour plus d’informations, consultez LoggerVerbosity. --version-suffix <VERSION_SUFFIX>Définit la valeur de la
VersionSuffixpropriété MSBuild. L’effet de cette propriété sur la version du package dépend des valeurs desVersionpropriétés etVersionPrefixdes valeurs, comme indiqué dans le tableau suivant :Propriétés avec des valeurs Version du package Aucun 1.0.0Version$(Version)VersionPrefixuniquement$(VersionPrefix)VersionSuffixuniquement1.0.0-$(VersionSuffix)VersionPrefixetVersionSuffix$(VersionPrefix)-$(VersionSuffix)Si vous souhaitez utiliser
--version-suffix, spécifiezVersionPrefixet nonVersiondans le fichier projet. Par exemple, siVersionPrefixc’est0.1.2et si vous passez--version-suffix rc.1àdotnet pack, la version du package sera0.1.2-rc.1.Si
Versionelle a une valeur et que vous passez--version-suffixàdotnet pack, la valeur spécifiée est--version-suffixignorée.-
-?|-h|--helpImprime une description de l’utilisation de la commande.
Examples
Packez le projet dans le répertoire actif :
dotnet packPackez le
app1projet :dotnet pack ~/projects/app1/project.csprojPackez le projet dans le répertoire actif et placez les packages résultants dans le
nupkgsdossier :dotnet pack --output nupkgsPackez le projet dans le répertoire actif dans le
nupkgsdossier et ignorez l’étape de génération :dotnet pack --no-build --output nupkgsAvec le suffixe de version du projet configuré comme
<VersionSuffix>$(VersionSuffix)</VersionSuffix>dans le fichier .csproj , packez le projet actuel et mettez à jour la version du package résultante avec le suffixe donné :dotnet pack --version-suffix "ci-1234"Définissez la version du package avec
2.1.0laPackageVersionpropriété MSBuild :dotnet pack -p:PackageVersion=2.1.0Packez le projet pour une infrastructure cible spécifique :
dotnet pack -p:TargetFrameworks=net45Packez le projet et utilisez un runtime spécifique (Windows) pour l’opération de restauration :
dotnet pack --runtime win-x64Packez le projet à l’aide d’un fichier .nuspec :
dotnet pack ~/projects/app1/project.csproj -p:NuspecFile=~/projects/app1/project.nuspec -p:NuspecBasePath=~/projects/app1/nugetPour plus d’informations sur l’utilisation
NuspecFile,NuspecBasePathetNuspecPropertiespour plus d’informations, consultez les ressources suivantes :