Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
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
-BasePathDéfinit le chemin de base des fichiers définis dans le fichier nuspec.
-BuildSpécifie que le projet doit être généré avant de générer le package.
-ConfigFileFichier 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é.-ExcludeSpé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.
-ExcludeEmptyDirectoriesEmpê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.
-?|-helpAffiche les informations d’aide pour la commande.
-IncludeReferencedProjectsIndique 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
.nuspecportant 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.-InstallPackageToOutputPathSpécifiez si la commande doit préparer l’annuaire de sortie du package pour prendre en charge le partage en tant que flux.
-MinClientVersionDé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.
-NoDefaultExcludesEmpêche l’exclusion par défaut des fichiers NuGet package et des fichiers et dossiers du package NuGet à partir d’un point, tel que
.svnet.gitignore.-NonInteractiveSupprime les invites pour l’entrée utilisateur ou les confirmations.
-NoPackageAnalysisSpécifie que le pack ne doit pas exécuter d’analyse du package après sa génération.
-OutputDirectorySpécifie le dossier dans lequel le package créé est stocké. Si aucun dossier n’est spécifié, le dossier en cours est utilisé.
-OutputFileNamesWithoutVersionSpécifiez si la commande doit préparer le nom de sortie du package sans la version.
-PackagesDirectorySpécifie le dossier de packages.
-p|-PropertiesDoit 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.nuspecsera 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.-SolutionDirectorySpé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 nightlycré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.-SymbolPackageFormatLors de la création d’un package de symboles, permet de choisir entre le format
snupkgetsymbols.nupkg.-SymbolsSpé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).-ToolSpécifie que les fichiers de sortie du projet doivent être placés dans le dossier
toolsau 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),quietoudetailed.-VersionRemplace 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.