commande pack (CLI NuGet)
S’applique à : création de package • Versions prises en charge : 2.7+
Crée un package NuGet basé sur le fichier .nuspec ou projet spécifié. La commande dotnet pack
(voir commandes dotnet) et msbuild -t:pack
(voir cibles MSBuild) peut être utilisée comme alternative.
Important
Utilisez dotnet pack
ou msbuild -t:pack
pour les projets basés sur PackageReference. À compter de NuGet version 6.5+, la commande pack génère une erreur lors de la tentative de pack de ces types de projet. Les versions antérieures tentent de packer, mais le package généré peut ne pas être correct.
Sous Mono, la création d’un package à partir d’un fichier projet n’est pas prise en charge. Vous devez également ajuster les chemins non locaux du fichier .nuspec
aux chemins de style Unix, car nuget.exe ne convertit pas les chemins d’accès Windows lui-même.
Usage
nuget pack <nuspecPath | projectPath> [options] [-Properties ...]
où <nuspecPath>
et <projectPath>
spécifient respectivement le .nuspec
ou le fichier projet.
Options
-BasePath
Définit le chemin de base des fichiers définis dans le fichier nuspec.
-Build
Spécifie que le projet doit être généré avant de générer le package.
-ConfigFile
Fichier de configuration NuGet à appliquer. S’il n’est pas spécifié,
%AppData%\NuGet\NuGet.Config
(Windows) ou~/.nuget/NuGet/NuGet.Config
, ou~/.config/NuGet/NuGet.Config
(Mac/Linux) est utilisé.-Exclude
Spécifie un ou plusieurs modèles d’utilisation des caractères génériques à exclure lors de la création d’un package. Pour spécifier plusieurs modèles, répétez l’indicateur -Exclude. Consultez l’exemple ci-dessous.
-ExcludeEmptyDirectories
Empêche l’inclusion de répertoires vides lors de la génération du package.
-ForceEnglishOutput
(3.5+) Force nuget.exe à s’exécuter avec une culture indifférente basée sur l’anglais.
-?|-help
Affiche les informations d’aide pour la commande.
-IncludeReferencedProjects
Indique que le package généré doit inclure des projets référencés en tant que dépendances ou dans le cadre du package. Si un projet référencé a un fichier correspondant
.nuspec
portant le même nom que le projet, ce projet référencé est ajouté en tant que dépendance. Sinon, le projet référencé est ajouté dans le cadre du package.-InstallPackageToOutputPath
Spécifiez si la commande doit préparer l’annuaire de sortie du package pour prendre en charge le partage en tant que flux.
-MinClientVersion
Définissez l’attribut minClientVersion pour le package créé. Cette valeur remplace la valeur de l’attribut minClientVersion existant (le cas échéant) dans le fichier
.nuspec
.-MSBuildPath
(4.0+) Spécifie le chemin d’accès de MSBuild à utiliser avec la commande, en ayant la précédence sur
-MSBuildVersion
.-MSBuildVersion
(3.2+) Spécifie la version de MSBuild à utiliser avec cette commande. Les valeurs prises en charge sont 4, 12, 14, 15.1, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9. Par défaut, MSBuild dans votre chemin d’accès est sélectionné ; sinon, il est défini par défaut sur la version installée la plus élevée de MSBuild.
-NoDefaultExcludes
Empêche l’exclusion par défaut des fichiers NuGet package et des fichiers et dossiers du package NuGet à partir d’un point, tel que
.svn
et.gitignore
.-NonInteractive
Supprime les invites pour l’entrée utilisateur ou les confirmations.
-NoPackageAnalysis
Spécifie que le pack ne doit pas exécuter d’analyse du package après sa génération.
-OutputDirectory
Spécifie le dossier dans lequel le package créé est stocké. Si aucun dossier n’est spécifié, le dossier en cours est utilisé.
-OutputFileNamesWithoutVersion
Spécifiez si la commande doit préparer le nom de sortie du package sans la version.
-PackagesDirectory
Spécifie le dossier de packages.
-p|-Properties
Doit apparaître en dernier sur la ligne de commande après d’autres options. Spécifie une liste de propriétés qui remplacent les valeurs dans le fichier projet ; consultez Propriétés communes du projet MSBuild pour les noms de propriétés. L’argument Propriétés est une liste de paires jeton=valeur, séparées par des points-virgules, où chaque occurrence de
$token$
dans le fichier.nuspec
sera remplacée par la valeur donnée. Les valeurs peuvent être des chaînes entre des guillemets. Notez que pour la propriété « Configuration », la valeur par défaut est « Déboguer ». Pour passer à une configuration Release, utilisez-Properties Configuration=Release
. En règle générale, les propriétés doivent être les mêmes que celles utilisées lors de la génération de projet correspondante, afin d’éviter un comportement potentiellement étrange.-SolutionDirectory
Spécifie l’annuaire de solutions.
-Suffix
(3.4.4+) Ajoute un suffixe au numéro de version généré en interne, généralement utilisé pour ajouter une version ou d’autres identificateurs de préversion. Par exemple, l’utilisation
-suffix nightly
crée un package avec un numéro de version tel que1.2.3-nightly
. Les suffixes doivent commencer par une lettre pour éviter les avertissements, les erreurs et les incompatibilités potentielles avec différentes versions de NuGet et du gestionnaire de package NuGet.-SymbolPackageFormat
Lors de la création d’un package de symboles, permet de choisir entre le format
snupkg
etsymbols.nupkg
.-Symbols
Spécifie que le package contient des sources et des symboles. Quand il est utilisé avec un fichier
.nuspec
, ceci crée un fichier de package NuGet standard et le package de symboles correspondant. Par défaut, il crée un package de symboles hérité. Le nouveau format recommandé pour les packages de symboles est .snupkg. Consultez Création de packages de symboles (.snupkg).-Tool
Spécifie que les fichiers de sortie du projet doivent être placés dans le dossier
tools
au sein du package.-Verbosity [normal|quiet|detailed]
Spécifie la quantité de détails affichée dans la sortie :
normal
(la valeur par défaut),quiet
oudetailed
.-Version
Remplace le numéro de version du fichier
.nuspec
.
Consultez également Variables d’environnement.
Exclusion des dépendances de développement
Certains packages NuGet sont utiles en tant que dépendances de développement, qui vous aident à créer votre propre bibliothèque, mais ne sont pas nécessairement nécessaires en tant que dépendances de package réelles.
La commande pack
ignorera package
entrées dans packages.config
qui a l’attribut developmentDependency
défini sur true
. Ces entrées ne seront pas incluses en tant que dépendances dans le package créé.
Par exemple, considérez le fichier suivant packages.config
dans le projet source :
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="jQuery" version="1.5.2" />
<package id="netfx-Guard" version="1.3.3.2" developmentDependency="true" />
<package id="microsoft-web-helpers" version="1.15" />
</packages>
Pour ce projet, le package créé par nuget pack
aura une dépendance sur jQuery
et microsoft-web-helpers
mais non netfx-Guard
.
Suppression des avertissements de pack
Bien qu’il soit recommandé de résoudre tous les avertissements NuGet pendant les opérations de votre pack, dans certaines situations, la suppression de ces avertissements est justifiée.
De cette façon, vous pouvez atteindre les objectifs suivants :
nuget.exe pack package.nuspec -Properties NoWarn=NU5104
Exemples
nuget pack
nuget pack foo.nuspec
nuget pack foo.csproj
nuget pack foo.csproj -Properties Configuration=Release
nuget pack foo.csproj -Build -Symbols -Properties owners=janedoe,xiaop;version="1.0.5"
# Create a package from project foo.csproj, using MSBuild version 12 to build the project
nuget pack foo.csproj -Build -Symbols -MSBuildVersion 12 -Properties owners=janedoe,xiaop;version="1.0.5"
# Create a package from project foo.nuspec and the corresponding symbol package using the new recommended format .snupkg
nuget pack foo.nuspec -Symbols -SymbolPackageFormat snupkg
nuget pack foo.nuspec -Version 2.1.0
nuget pack foo.nuspec -Version 1.0.0 -MinClientVersion 2.5
nuget pack Package.nuspec -exclude "*.exe" -exclude "*.bat"
Remarque
La commande pack
pour les projets de style SDK n’est pas prise en charge, utilisez dotnet pack
ou msbuild -t:pack
pour mettre ces projets en package à la place.