Comando pack (CLI de NuGet)

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

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

Importante

Usa 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 debes ajustar rutas de acceso no locales en el archivo .nuspec a rutas de acceso de estilo Unix, ya que nuget.exe no convierte los nombres de ruta de acceso de Windows por sí mismo.

Uso

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

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

Opciones

  • -BasePath

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

  • -Build

    Especifica que el proyecto debería compilarse antes de compilar el paquete.

  • -ConfigFile

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

  • -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, repite la marca -Exclude. Vea el ejemplo siguiente.

  • -ExcludeEmptyDirectories

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

  • -ForceEnglishOutput

    (3.5 y posteriores) Fuerza la ejecución de nuget.exe mediante una referencia cultural en inglés invariable.

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

    Especifica si el comando debería preparar el directorio de salida del paquete para admitir el recurso compartido como feed.

  • -MinClientVersion

    Establece el atributo minClientVersion para el paquete creado. Este valor invalidará el valor del atributo minClientVersion existente (si hay alguno) en el archivo .nuspec.

  • -MSBuildPath

    (4.0 y posteriores) Especifica la ruta de acceso de MSBuild que se va a usar con el comando; prevalecerá sobre -MSBuildVersion.

  • -MSBuildVersion

    (3.2 y posteriores) 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 manera 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 solicitudes de confirmaciones o de entrada de usuario.

  • -NoPackageAnalysis

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

  • -OutputDirectory

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

  • -OutputFileNamesWithoutVersion

    Especifica si el comando debería preparar el nombre de salida del paquete sin la versión.

  • -PackagesDirectory

    Especifica la carpeta packages.

  • -p|-Properties

    Debería aparecer la última en la línea de comandos después de otras opciones. Especifica una lista de propiedades que invalidan los valores en el archivo del proyecto; consulta los nombres de las propiedades en Propiedades comunes de proyectos de MSBuild. El argumento Properties aquí es una lista de pares “token = valor”, separados por punto y coma, donde cada entrada de $token$ en el archivo .nuspec se reemplazará por el valor dado. Los valores pueden ser cadenas entre comillas. Ten en cuenta que para la propiedad “Configuration”, el valor predeterminado es “Debug”. Para cambiar a una configuración de versión, usa -Properties Configuration=Release. En general, las propiedades deberían 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 y versiones posteriores) Anexa un sufijo al número de versión generado internamente, que suele usarse para anexar la compilación u otros identificadores de versión preliminar. Por ejemplo, el uso de -suffix nightly creará un paquete con un número de versión como 1.2.3-nightly. Los sufijos deben comenzar por una letra para evitar advertencias, errores y posibles incompatibilidades con diferentes versiones de NuGet y el Administrador de paquetes de NuGet.

  • -SymbolPackageFormat

    Al crear un paquete de símbolos, permite elegir entre el formato snupkg 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 manera predeterminada, crea un paquete de símbolos heredado. El nuevo formato recomendado para paquetes de símbolos es .snupkg. Vea Crear paquetes de símbolos (.snupkg).

  • -Tool

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

  • -Verbosity [normal|quiet|detailed]

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

  • -Version

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

Consulta también Variables de entorno

Exclusión de dependencias de desarrollo

Algunos paquetes de NuGet son útiles como dependencias de desarrollo, que ayudan a crear tu propia biblioteca, pero no tienen por qué ser necesarios como dependencias de paquetes reales.

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

Por ejemplo, considera el siguiente archivo packages.config 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 en netfx-Guard.

Supresión de advertencias de paquete

Aunque se recomienda resolver todas las advertencias de NuGet durante las operaciones de paquete, en determinadas situaciones la supresión está garantizada.

Puedes conseguir esto del siguiente modo:

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"

Nota:

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