dotnet nuget push

Este artículo se aplica a: ✔️ SDK de .NET Core 3.1 y versiones posteriores

NOMBRE

dotnet nuget push: inserta un paquete en el servidor y lo publica.

Sinopsis

dotnet nuget push [<ROOT>] [-d|--disable-buffering] [--force-english-output]
    [--interactive] [-k|--api-key <API_KEY>] [-n|--no-symbols]
    [--no-service-endpoint] [-s|--source <SOURCE>] [--skip-duplicate]
    [-sk|--symbol-api-key <API_KEY>] [-ss|--symbol-source <SOURCE>]
    [-t|--timeout <TIMEOUT>]

dotnet nuget push -h|--help

Descripción

El comando dotnet nuget push inserta un paquete en el servidor y lo publica. El comando push usa los detalles del servidor y de las credenciales encontrados en el archivo de configuración NuGet del sistema o en la cadena de archivos de configuración. Para más información sobre los archivos de configuración, consulte Configuring NuGet Behavior (Configuración del comportamiento de NuGet). La configuración predeterminada de NuGet se obtiene mediante la carga de %AppData%\NuGet\NuGet.config (Windows) o $HOME/.nuget/NuGet/NuGet.Config (Linux/macOS), y luego la carga de cualquier archivo nuget.config o .nuget\nuget.config comenzando desde la raíz de la unidad y finalizando en el directorio actual.

El comando inserta un paquete existente. No crea un paquete. Para crear un paquete, use dotnet pack.

Estructura de carpetas jerárquica

Este comando puede almacenar paquetes en una estructura de carpetas jerárquica, lo que se recomienda para optimizar el rendimiento. Almacena paquetes en una estructura de carpetas jerárquica al publicar en una carpeta local (fuente), como lo hace nuget add, si ya hay al menos un paquete en la fuente que se encuentra en una estructura de carpetas jerárquica. Si la fuente ya tiene un paquete estructurado de carpetas jerárquicas, dotnet nuget push respeta esa estructura. Por lo tanto, si desea publicar en una fuente local mediante la CLI de .NET en lugar de la CLI de NuGet:

  • Antes de publicar el primer paquete, vaya a la carpeta de paquetes globales, en %userprofile%.nuget\packages, y seleccione la carpeta raíz de un identificador de paquete. Puede ser cualquier paquete que no forme parte de un marco, como .NET Standard o ASP.NET.
  • Copie la carpeta de paquete seleccionada en la carpeta raíz de la fuente local.
  • Use dotnet nuget push para publicar el paquete en la fuente local.
  • Ahora puede eliminar la carpeta que copió con anterioridad y puede usar dotnet nuget push libremente para publicar en la fuente local.

Como alternativa, puede usar la CLI de NuGet para el primer paquete y, a continuación, usar dotnet nuget push para el resto. Para obtener más información, vea Fuentes locales.

Argumentos

  • ROOT

    Especifica la ruta de acceso al archivo en la que se debe insertar el paquete.

Opciones

  • -d|--disable-buffering

    Deshabilita el almacenamiento en búfer al realizar inserciones en un servidor HTTP(S) para reducir el uso de memoria.

  • --force-english-output

    Fuerza la ejecución de la aplicación mediante una referencia cultural en inglés invariable.

  • -?|-h|--help

    Imprime una descripción de cómo usar el comando.

  • --interactive

    Permite que el comando se detenga y espere una entrada o una acción del usuario. Por ejemplo, para completar la autenticación. Disponible desde el SDK de .NET Core 3.0.

  • -k|--api-key <API_KEY>

    La clave de API para el servidor.

  • -n|--no-symbols

    No inserta símbolos (incluso si está presente).

  • --no-service-endpoint

    No agrega "api/v2/paquete" a la dirección URL de origen.

  • -s|--source <SOURCE>

    Especifica la dirección URL del servidor. NuGet identifica un origen de carpeta local o UNC y simplemente copia el archivo allí, en lugar de insertarlo mediante HTTP.

    Importante

    A partir de NuGet 3.4.2, se trata de un parámetro obligatorio, a menos que el archivo de configuración de NuGet especifique un valor DefaultPushSource. Para más información, vea Configuring NuGet behavior (Configuración del comportamiento de NuGet).

  • --skip-duplicate

    Al insertar varios paquetes en un servidor HTTP(S), trata cualquier respuesta de conflicto 409 como una advertencia para que otras inserciones puedan continuar.

  • -sk|--symbol-api-key <API_KEY>

    La clave de API para el servidor de símbolos.

  • -ss|--symbol-source <SOURCE>

    Especifica la dirección URL del servidor de símbolos.

  • -t|--timeout <TIMEOUT>

    Especifica el tiempo de espera para la inserción en un servidor en segundos. El valor predeterminado es 300 segundos (5 minutos). Si se especifica 0 se aplica el valor predeterminado.

Ejemplos

  • Inserte foo.nupkg en el origen de inserción predeterminado especificado en el archivo de configuración de NuGet, mediante una clave de API:

    dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a
    
  • Inserte foo.nupkg en el servidor de NuGet oficial y especifique una clave de API:

    dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -s https://api.nuget.org/v3/index.json
    
  • Inserta foo.nupkg en el origen de inserción personalizado https://customsource, y especifica una clave de API:

    dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -s https://customsource/
    
  • Inserte foo.nupkg en el origen de inserción predeterminado especificado en el archivo de configuración de NuGet:

    dotnet nuget push foo.nupkg
    
  • Inserte foo.symbols.nupkp en el origen de símbolos predeterminado:

    dotnet nuget push foo.symbols.nupkg
    
  • Inserte foo.nupkg en el origen de inserción predeterminado especificado en el archivo de configuración de NuGet, con un tiempo de espera de 360 segundos:

    dotnet nuget push foo.nupkg --timeout 360
    
  • Inserte todos los archivos .nupkg del directorio actual en el origen de inserción predeterminado especificado en el archivo de configuración de NuGet:

    dotnet nuget push "*.nupkg"
    

    Nota:

    Si este comando no funciona, es posible que se deba a un error presente en versiones anteriores del SDK (SDK de .NET Core 2.1 y versiones anteriores). Para solucionar este problema, actualice la versión de su SDK o ejecute el siguiente comando en su lugar: dotnet nuget push "**/*.nupkg"

    Nota:

    Las comillas de inclusión son necesarias para los shells como bash que usan comodines de archivo. Para obtener más información, vea NuGet/Home#4393.

  • Inserte todos los archivos .nupkg en el origen de inserción predeterminado especificado en el archivo de configuración de NuGet, incluso si un servidor HTTP(S) devuelve una respuesta de conflicto 409:

    dotnet nuget push "*.nupkg" --skip-duplicate
    
  • Inserte todos los archivos .nupkg del directorio actual en un directorio de fuente local:

    dotnet nuget push "*.nupkg" -s c:\mydir
    
  • Para insertar cambios en Azure Artifacts, consulte la documentación de inserción de Azure Artifacts.