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

<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 que 1.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 et symbols.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 ou detailed.

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