Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Una vez que cree un paquete NuGet y tenga un archivo .nupkg , puede poner el paquete a disposición de otros desarrolladores de forma pública o privada. En este artículo se describe cómo compartir paquetes públicos globalmente a través de nuget.org.
También puede hacer que los paquetes privados estén disponibles solo para un equipo u organización hospedándolos en un recurso compartido de archivos, un servidor NuGet privado o un repositorio de terceros, como myget, ProGet, Nexus Repository o Artifactory. Para obtener más información, consulte Hospedar sus propias fuentes de NuGet. Para publicar con Azure Artifacts, consulte Publicación de paquetes en NuGet.org.
Publicar en nuget.org
Para publicar en nuget.org, inicie sesión en nuget.org con una cuenta microsoft y úsela para crear una cuenta gratuita de nuget.org. Siga las instrucciones que aparecen en Agregar una nueva cuenta individual.
Una vez que tenga una cuenta, puede publicar un paquete en nuget.org mediante el portal web de nuget.org, la CLI de dotnet o la VERSIÓN 4.1.0 o posterior de la CLI de NuGet. También puede publicar paquetes a través de Azure Pipelines.
Carga en el portal web de nuget.org
Para cargar un paquete en el sitio web de nuget.org:
Seleccione Cargar en el menú superior de nuget.org, vaya al paquete del equipo y seleccione Abrir.
Si el identificador de paquete ya existe en nuget.org, recibirá un error. Cambie el identificador del paquete en el proyecto, vuelva a empaquetar e inténtelo de nuevo.
Si el nombre del paquete está disponible, se abre la sección Comprobar para que pueda revisar los metadatos del manifiesto del paquete. Si incluyó un archivo Léame en el paquete, seleccione Vista previa para asegurarse de que todo el contenido se representa correctamente.
Para cambiar cualquiera de los metadatos, edite el archivo del proyecto o el archivo .nuspec , recompile, vuelva a empaquetar y cargue de nuevo.
Cuando toda la información esté lista, seleccione Enviar.
Empujar usando una línea de comandos
Para insertar paquetes en nuget.org con una línea de comandos, puede usar dotnet.exe o nuget.exe v4.1.0 o superior, que implementan los protocolos NuGet necesarios. Para obtener más información, consulte Protocolos NuGet.
Para usar cualquiera de las líneas de comandos, primero debe obtener una clave de API de nuget.org.
Creación de una clave de API
Inicie sesión en su cuenta de nuget.org o cree una cuenta si aún no tiene una.
Seleccione el nombre de usuario en la esquina superior derecha y, a continuación, seleccione Claves de API.
Seleccione Crear y proporcione un nombre para la clave.
En Seleccionar ámbitos, seleccione Push.
En Seleccionar Paquetes>Patrón Global, escriba *.
Selecciona Crear.
Seleccione Copiar para copiar la nueva clave.
Importante
- Mantenga siempre la clave de API en un secreto. La clave de API es como una contraseña que permite a cualquier persona administrar paquetes en su nombre. Elimine o regenere la clave de API si se revela accidentalmente.
- Guarde la clave en una ubicación segura, ya que no puede volver a copiar la clave más adelante. Si vuelve a la página clave de API, debe volver a generar la clave para copiarla. También puede quitar la clave de API si ya no desea insertar paquetes.
Limitación permite crear claves de API independientes con distintos fines. Cada clave tiene un período de tiempo de expiración y puede definir el ámbito de la clave a paquetes o patrones globales específicos. También puede limitar cada clave a operaciones específicas: insertar nuevos paquetes y versiones de paquete, insertar solo nuevas versiones de paquete o anular la lista.
A través del ámbito, puede crear claves de API para diferentes personas que administran paquetes para su organización para que solo tengan los permisos que necesitan.
Para más información, consulte Claves de API delimitadas.
Uso de la CLI de dotnet
En la carpeta que contiene el archivo .nupkg , ejecute el siguiente comando. Especifique el nombre de archivo .nupkg y reemplace el valor de clave por su clave API.
dotnet nuget push Contoso.08.28.22.001.Test.1.0.0.nupkg --api-key qz2jga8pl3dvn2akksyquwcs9ygggg4exypy3bhxy6w6x6 --source https://api.nuget.org/v3/index.json
La salida muestra los resultados del proceso de publicación:
Pushing Contoso.08.28.22.001.Test.1.0.0.nupkg to 'https://www.nuget.org/api/v2/package'...
PUT https://www.nuget.org/api/v2/package/
warn : All published packages should have license information specified. Learn more: https://aka.ms/nuget/authoring-best-practices#licensing.
Created https://www.nuget.org/api/v2/package/ 1221ms
Your package was pushed.
Para obtener más información, consulte dotnet nuget push.
Nota:
Si quiere evitar que su paquete de prueba esté activo en nuget.org, puede publicarlo en el sitio de pruebas de nuget.org en https://int.nugettest.org. Tenga en cuenta que los paquetes cargados en int.nugettest.org podrían no conservarse.
Uso de la CLI de NuGet
En un símbolo del sistema, ejecute el siguiente comando y reemplace
<your_API_key>con la clave que obtuvo de nuget.org.nuget setApiKey <your_API_key>Este comando almacena la clave de API en la configuración de NuGet, por lo que no es necesario volver a escribir la clave de API en el mismo equipo.
Nota:
Esta clave de API no se usa para autenticarse con fuentes privadas. Para administrar las credenciales para autenticarse con estos orígenes, consulte el comando nuget sources.
Inserte el paquete mediante el comando siguiente:
nuget push YourPackage.nupkg -Source https://api.nuget.org/v3/index.json
Publicación con Azure Pipelines
Puede insertar paquetes en nuget.org con Azure Pipelines como parte del proceso de integración continua e implementación continua (CI/CD). Para más información, consulte Publicación de paquetes NuGet con Azure Pipelines.
Publicación de un paquete firmado
Para enviar un paquete firmado, primero debe registrar el certificado que usó para firmar el paquete. Si no cumple los requisitos del paquete firmado, nuget.org rechaza el paquete.
Límites de tamaño del paquete
Nuget.org tiene un límite de tamaño de paquete de aproximadamente 250 MB. Cuando se carga un paquete que supera ese límite, se muestra el siguiente error:
El archivo de paquete supera el límite de tamaño. Inténtelo de nuevo.
Si este paquete se inserta desde la línea de comandos, se genera la siguiente salida:
RequestEntityTooLarge https://www.nuget.org/api/v2/package/ 13903ms
error: Response status code does not indicate success: 413 (The package file exceeds the size limit. Please try again.).
Si recibe estos errores, considere la posibilidad de revisar el contenido del paquete para reducir su tamaño. Si va a empaquetar símbolos de depuración en el paquete, considere la posibilidad de publicarlos por separado. Otros recursos se pueden publicar por separado como uno o varios paquetes de dependencia para distribuirlos en fragmentos más pequeños.
Validación e indexación de paquetes
Los paquetes insertados en nuget.org se someten a varias validaciones, como las comprobaciones de virus, y los paquetes existentes se examinan periódicamente. Cuando el paquete pasa todas las comprobaciones de validación, puede tardar un tiempo en indexarse y aparecer en los resultados de la búsqueda. Mientras se indexa el paquete, aparece en Paquetes no registrados y verá el siguiente mensaje en la página del paquete:
Una vez completada la validación y la indexación, recibirá un correo electrónico que el paquete se publicó correctamente. Si se produce un error en la comprobación de validación del paquete, la página del paquete se actualiza para mostrar el error asociado y recibe un correo electrónico de notificación.
La validación de paquetes y la indexación suelen tardar menos de 15 minutos. Si la publicación de paquetes tarda más de lo esperado, compruebe nuget.org estado en status.nuget.org. Si todos los sistemas están operativos y el paquete no se publica correctamente en un plazo de una hora, póngase en contacto con nuget.org mediante el vínculo Ponerse en contacto con el soporte técnico en la página del paquete.
Para ver el estado del paquete, seleccione Administrar paquetes en el nombre de la cuenta en la esquina superior derecha de nuget.org y seleccione el paquete en Paquetes publicados o Paquetes no registrados.
Administración de propietarios de paquetes en nuget.org
Los propietarios de paquetes tienen permisos completos para el paquete, incluida la adición y eliminación de otros propietarios y actualizaciones de publicación.
Aunque el archivo .nuspec del paquete NuGet define los autores del paquete, nuget.org no usa esos metadatos para definir la propiedad. En su lugar, nuget.org asigna la propiedad a la persona que publica el paquete, ya sea el usuario que inició sesión que cargó el paquete o el usuario cuya clave de API se usó con dotnet push, nuget SetApiKeyo nuget push.
Para cambiar la propiedad de un paquete:
Inicie sesión en nuget.org con la cuenta que posee actualmente el paquete.
Seleccione el nombre de la cuenta en la esquina superior derecha, seleccione Administrar paquetes y expanda Paquetes publicados.
Seleccione el paquete que desea administrar y, en el lado derecho de la página del paquete, seleccione Administrar paquete.
En la página administración de paquetes, seleccione Propietarios.
Realice una de las siguientes acciones:
Seleccione Quitar para quitar el propietario actual.
Agregue un propietario en Agregar propietario escribiendo su nombre de usuario y un mensaje y seleccionando Agregar.
Esta acción envía un correo electrónico al nuevo copropietario con un vínculo de confirmación. Una vez confirmado, esa persona tiene permisos completos para agregar y quitar propietarios. Hasta que se confirme, la sección Propietarios actuales muestra la aprobación pendiente para esa persona.
Para transferir la propiedad, por ejemplo, cuando cambia la titularidad o un paquete se publica en la cuenta incorrecta, añada el nuevo propietario. Una vez que confirmen la propiedad, pueden quitar el propietario antiguo de la lista.
Para asignar la propiedad a una empresa o grupo, cree una cuenta de nuget.org con un alias de correo electrónico que reenvíe a los miembros del equipo adecuados. Por ejemplo, varios paquetes de Microsoft ASP.NET son propiedad conjunta de las cuentas microsoft y aspnet .
En ocasiones, es posible que un paquete no tenga un propietario activo. Por ejemplo, el propietario original podría haber dejado la empresa que produjo el paquete. Si es el propietario correcto de un paquete y necesita recuperar la propiedad, use el formulario de contacto en nuget.org para explicar su situación al equipo de NuGet. El equipo sigue un proceso para comprobar su propiedad, incluida la búsqueda del propietario existente, y puede enviarle una nueva invitación para convertirse en el propietario del paquete.