Comando pack (CLI de NuGet)

Se aplica a: creación de paquetes • Versiones compatibles: 2.7+

Crea un paquete NuGet basado en el archivo de proyecto o .nuspec especificado. El dotnet pack comando (consulte dotnet Commands) y msbuild -t:pack (consulte Destinos de MSBuild) se pueden usar como alternativas.

Importante

Use dotnet pack o msbuild -t:pack para proyectos basados en PackageReference . A partir de la versión 6.5 y posteriores de NuGet, el comando pack producirá un error al intentar empaquetar estos tipos de proyecto. Las versiones anteriores intentarían empaquetar, pero es posible que el paquete generado no sea correcto. En Mono, no se admite la creación de un paquete a partir de un archivo de proyecto. También debe ajustar las rutas de acceso no locales del .nuspec archivo a rutas de acceso de estilo Unix, ya que nuget.exe no convierte los nombres de ruta de acceso Windows.

Uso

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

donde <nuspecPath> y <projectPath> especifican el .nuspec archivo de proyecto o , respectivamente.

Options

  • -BasePath

    Establece la ruta de acceso base de los archivos definidos en el archivo .nuspec .

  • -Build

    Especifica que el proyecto debe compilarse antes de compilar el paquete.

  • -ConfigFile

    Archivo de configuración de NuGet que se va a aplicar. Si no se especifica, %AppData%\NuGet\NuGet.Config se usa (Windows) o ~/.nuget/NuGet/NuGet.Config~/.config/NuGet/NuGet.Config (Mac/Linux).

  • -Deterministic

    (7.9+) Compile paquetes en modo determinista. Esto genera paquetes idénticos a bits para la misma entrada (código fuente, archivo de proyecto, configuración de compilación), con una advertencia conocida de las marcas de tiempo. Vea DeterministicTimestamp cómo reproducir con fechas y horas idénticas.

  • -DeterministicTimestamp

    (7.9+) Especifique una marca de tiempo que se usa como fecha y hora de modificación del archivo para todos los archivos agregados al paquete NuGet. Puede ser una fecha y hora en formato RFC 3339 (como 1996-12-19T16:39:57-08:00), puede ser el número de segundos no bisiesto desde las 00:00:00 UTC el 1 de enero de 1970 (también conocido como hora de Unix), o puede ser la cadena true especial (valor predeterminado, usar la hora del reloj actual) o false no modificar las horas de archivo al crear paquetes deterministas. Esta opción se omite si Deterministic no está habilitada.

  • -Exclude

    Especifica uno o varios patrones de caracteres comodín que se excluirán al crear un paquete. Para especificar más de un patrón, repita la marca -Exclude. Consulte el ejemplo siguiente.

  • -ExcludeEmptyDirectories

    Impide la inclusión de directorios vacíos al compilar el paquete.

  • -ForceEnglishOutput

    (3.5+) Fuerza a nuget.exe ejecutar mediante una referencia cultural invariable basada en inglés.

  • -?|-help

    Muestra información de ayuda para el comando.

  • -IncludeReferencedProjects

    Indica que el paquete compilado debe incluir proyectos a los que se hace referencia como dependencias o como parte del paquete. Si un proyecto al que se hace referencia tiene un archivo .nuspec correspondiente que tiene el mismo nombre que el proyecto, ese proyecto al que se hace referencia se agrega como una dependencia. De lo contrario, el proyecto al que se hace referencia se agrega como parte del paquete.

  • -InstallPackageToOutputPath

    Especifique si el comando debe preparar el directorio de salida del paquete para admitir el recurso compartido como fuente.

  • -MinClientVersion

    Establezca el atributo minClientVersion para el paquete creado. Este valor invalidará el valor del atributo minClientVersion existente (si existe) en el .nuspec archivo.

  • -MSBuildPath

    (4.0+) Especifica la ruta de acceso de MSBuild que se va a usar con el comando , teniendo prioridad sobre -MSBuildVersion.

  • -MSBuildVersion

    (3.2+) Especifica la versión de MSBuild que se va a usar con este comando. Los valores admitidos son 4, 12, 14, 15.1, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9. De forma predeterminada, se selecciona MSBuild en la ruta de acceso; de lo contrario, el valor predeterminado es la versión instalada más alta de MSBuild.

  • -NoDefaultExcludes

    Impide la exclusión predeterminada de archivos y carpetas de paquetes NuGet a partir de un punto, como .svn y .gitignore.

  • -NonInteractive

    Suprime las solicitudes de entrada o confirmaciones del usuario.

  • -NoPackageAnalysis

    Especifica que el paquete no debe ejecutar el análisis de paquetes después de compilar el paquete.

  • -OutputDirectory

    Especifica la carpeta en la que se almacena el paquete creado. Si no se especifica ninguna carpeta, se usa la carpeta actual.

  • -OutputFileNamesWithoutVersion

    Especifique si el comando debe preparar el nombre de salida del paquete sin la versión.

  • -PackagesDirectory

    Especifica la carpeta packages.

  • -p|-Properties

    Debe aparecer por última vez en la línea de comandos después de otras opciones. Especifica una lista de propiedades que invalidan los valores del archivo project; vea Common MSBuild Project Properties for property names (Propiedades comunes de MSBuild Project para los nombres de propiedad). El argumento Properties aquí es una lista de pares token=value, separados por punto y coma, donde cada aparición de $token$ en el .nuspec archivo se reemplazará por el valor especificado. Los valores pueden ser cadenas entre comillas. Tenga en cuenta que para la propiedad "Configuration", el valor predeterminado es "Depurar". Para cambiar a una configuración de versión, use -Properties Configuration=Release. En general, Las propiedades deben ser las mismas que se usaron durante la compilación del proyecto correspondiente, con el fin de evitar un comportamiento potencialmente extraño.

  • -SolutionDirectory

    Especifica el directorio de la solución.

  • -Suffix

    (3.4.4+) Anexa un sufijo al número de versión generado internamente, que normalmente se usa para anexar la compilación u otros identificadores de versión preliminar. Por ejemplo, el uso -suffix nightly de creará un paquete con un número de versión como 1.2.3-nightly. Los sufijos deben comenzar con una letra para evitar advertencias, errores y posibles incompatibilidades con diferentes versiones de NuGet y nuGet Administrador de paquetes.

  • -SymbolPackageFormat

    Al crear un paquete de símbolos, permite elegir entre el snupkg formato y symbols.nupkg .

  • -Symbols

    Especifica que el paquete contiene orígenes y símbolos. Cuando se usa con un archivo .nuspec, se crea un archivo de paquete NuGet normal y el paquete de símbolos correspondiente. De forma predeterminada, crea un paquete de símbolos heredado. El nuevo formato recomendado para los paquetes de símbolos es .snupkg. Consulte Creación de paquetes de símbolos (.snupkg).

  • -Tool

    Especifica que los archivos de salida del proyecto deben colocarse en la tools carpeta del paquete.

  • -Verbosity [normal|quiet|detailed]

    Especifica la cantidad de detalles que se muestran en la salida: normal (valor predeterminado), quieto detailed.

  • -Version

    Invalida el número de versión del .nuspec archivo.

Consulte también Variables de entorno.

Exclusión de dependencias de desarrollo

Algunos paquetes NuGet son útiles como dependencias de desarrollo, que le ayudan a crear su propia biblioteca, pero no son necesariamente necesarias como dependencias de paquetes reales.

El pack comando omitirá package las entradas de que tienen el developmentDependency atributo establecido trueen packages.config . Estas entradas no se incluirán como dependencias en el paquete creado.

Por ejemplo, considere el siguiente packages.config archivo en el proyecto de origen:

<?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>

Para este proyecto, el paquete creado por nuget pack tendrá una dependencia en jQuery y microsoft-web-helpers , pero no netfx-Guarden .

Suprimir advertencias del paquete

Aunque se recomienda resolver todas las advertencias de NuGet durante las operaciones del paquete, en determinadas situaciones se garantiza supresión.

Puede lograrlo de la siguiente manera:

nuget.exe pack package.nuspec -Properties NoWarn=NU5104

Ejemplos

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

No se admite el pack comando para proyectos de estilo SDK, use dotnet pack o msbuild -t:pack para empaquetar estos proyectos en su lugar.