commande pack (Interface 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 dotnet pack commande (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 .nuspec fichier aux chemins de style Unix, car nuget.exe ne convertit pas Windows noms de chemin d'accès lui-même.

Utilisation

nuget pack <nuspecPath | projectPath> [options] [-Properties ...]

<nuspecPath> et <projectPath> spécifient respectivement le fichier ou le .nuspec fichier projet.

Options

  • -BasePath

    Définit le chemin d’accès 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é.

  • -Deterministic

    (7.9+) Générer des packages en mode déterministe. Cela produit des packages identiques au bit pour la même entrée (code source, fichier projet, configuration de build), avec une mise en garde connue des horodatages. Découvrez DeterministicTimestamp comment reproduire avec des dates/heures identiques.

  • -DeterministicTimestamp

    (7.9+) Spécifiez un horodatage utilisé comme date/heure de modification de fichier pour tous les fichiers ajoutés au package NuGet. Il peut s’agir d’une date/heure au format RFC 3339 (par exemple 1996-12-19T16:39:57-08:00), il peut s’agir du nombre de secondes non bissextiles depuis 00:00:00 UTC le 1er janvier 1970 (également appelé heure Unix), ou il peut s’agir de la chaîne true spéciale (par défaut, utiliser l’heure de l’horloge murale actuelle) ou false de ne pas modifier les heures de fichier lors de la création de packages déterministes. Cette option est ignorée si Deterministic elle n’est pas activée.

  • -Exclude

    Spécifie un ou plusieurs modèles génériques à exclure lors de la création d’un package. Pour spécifier plusieurs modèles, répétez l’indicateur -Exclude. Voir 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 à l’aide d’une culture invariante 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 .nuspec correspondant qui porte 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 le répertoire 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 .nuspec fichier.

  • -MSBuildPath

    (4.0+) Spécifie le chemin d’accès de MSBuild à utiliser avec la commande, en précédant -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 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 l’analyse du package après avoir généré le package.

  • -OutputDirectory

    Spécifie le dossier dans lequel le package créé est stocké. Si aucun dossier n’est spécifié, le dossier actif 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 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 project ; consultez Propriétés courantes de MSBuild Project pour les noms de propriétés. L’argument Properties est ici une liste de paires token=value, séparées par des points-virgules, où chaque occurrence du $token$.nuspec fichier sera remplacée par la valeur donnée. Les valeurs peuvent être des chaînes entre 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 le répertoire de la solution.

  • -Suffix

    (3.4.4+) Ajoute un suffixe au numéro de version généré en interne, généralement utilisé pour ajouter une build 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, erreurs et incompatibilités potentielles avec différentes versions de NuGet et le Gestionnaire de package NuGet.

  • -SymbolPackageFormat

    Lors de la création d’un package de symboles, permet de choisir entre le format et symbols.nupkg le snupkg format.

  • -Symbols

    Spécifie que le package contient des sources et des symboles. Lorsqu’il est utilisé avec un fichier .nuspec, cela crée un fichier de package NuGet standard et le package de symboles correspondants. 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 dans le tools 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 .nuspec fichier.

Voir également les 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 pack commande ignore package les entrées dont packages.config l’attribut a la developmentDependency valeur true. Ces entrées ne seront pas inclure 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 et jQuerymicrosoft-web-helpers 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.

Pour ce faire, procédez comme suit :

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"

Note

La pack commande pour les projets de style SDK n’est pas prise en charge, l’utilisation dotnet pack ou msbuild -t:pack le pack de ces projets à la place.