Inicio rápido: Crear y publicar un paquete (CLI de dotnet)
La creación de un paquete NuGet desde una biblioteca de clases de .NET y su publicación en nuget.org con la interfaz de la línea de comandos (CLI) de dotnet es un proceso simple.
Prerequisites
Instale el SDK de .NET Core, que incluye la CLI. A partir de Visual Studio 2017, la CLI de dotnet se instala automáticamente con cualquier carga de trabajo relacionada con .NET Core.
Registrar una cuenta gratuita en nuget.org si aún no tiene uno. Al crear una cuenta se envía un correo electrónico de confirmación. Debe confirmar la cuenta para poder cargar un paquete.
Crear un proyecto de biblioteca de clases
Puede usar un proyecto de biblioteca de clases .NET existente para el código que desea empaquetar o crear uno simple tal y como se indica a continuación:
Cree una carpeta denominada
AppLogger.Abra un símbolo del sistema y cambie a la carpeta
AppLogger.Escriba
dotnet new classlib, que utiliza el nombre de la carpeta actual para el proyecto.Esto creará el nuevo proyecto.
Agregar metadatos de paquete al archivo de proyecto
Cada paquete NuGet necesita un manifiesto que describa su contenido y sus dependencias. En un paquete final, el manifiesto es un archivo .nuspec que se genera a partir de las propiedades de metadatos de NuGet que se incluyen en el archivo de proyecto.
Abra el archivo de proyecto (, o en función del lenguaje que use) y agregue las siguientes propiedades mínimas dentro de la etiqueta existente, cambiando los valores según
.csproj.fsproj.vbproj<PropertyGroup>corresponda:<PackageId>AppLogger</PackageId> <Version>1.0.0</Version> <Authors>your_name</Authors> <Company>your_company</Company>Importante
Asigne al paquete un identificador que sea único en nuget.org o en el host que use. En este tutorial, se recomienda incluir "muestra" o "prueba" en el nombre porque el paso de publicación posterior hace que el paquete sea visible públicamente (aunque no es probable que nadie lo use realmente).
Agregue las propiedades opcionales que se describen en Propiedades de metadatos de NuGet.
Nota
En el caso de los paquetes creados para consumo público, preste especial atención la propiedad PackageTags, dado que estas etiquetas ayudan a otros usuarios a encontrar el paquete y comprender lo que hace.
Ejecutar el comando pack
Para compilar un paquete NuGet (un archivo .nupkg) desde el proyecto, ejecute el comando dotnet pack, que también genera el proyecto automáticamente:
# Uses the project file in the current folder by default
dotnet pack
El resultado mostrará la ruta de acceso al archivo .nupkg:
Microsoft (R) Build Engine version 15.5.180.51428 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.
Restore completed in 29.91 ms for D:\proj\AppLoggerNet\AppLogger\AppLogger.csproj.
AppLogger -> D:\proj\AppLoggerNet\AppLogger\bin\Debug\netstandard2.0\AppLogger.dll
Successfully created package 'D:\proj\AppLoggerNet\AppLogger\bin\Debug\AppLogger.1.0.0.nupkg'.
Generación automática del paquete en la compilación
Para ejecutar automáticamente dotnet pack al ejecutar dotnet build, agregue la siguiente línea al archivo de proyecto en <PropertyGroup>:
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
Publicar el paquete
Cuando tenga un archivo .nupkg, publíquelo en nuget.org con el comando dotnet nuget push y una clave de API adquirida de nuget.org.
Nota
Análisis de virus: todos los paquetes que se cargan en nuget.org se analizan en busca de virus y se rechazan si se detectan virus. Todos los paquetes que aparecen en nuget.org también se analizan periódicamente.
A menos que se quiten de la lista, los paquetes publicados en nuget.org también están visibles públicamente para otros desarrolladores. Para hospedar paquetes de forma privada, vea Hospedaje de paquetes.
Adquirir la clave de API
Inicie sesión en su cuenta de nuget.org o cree una cuenta si aún no tiene una.
Para más información sobre cómo crear la cuenta, consulte Cuentas individuales.
Seleccione el nombre de usuario (en la esquina superior derecha) y luego Claves de API.
Seleccione Crear,proporcione un nombre para la clave y seleccione Seleccionar ámbitos Push. Escriba * en patrón global y, luego, seleccione Crear. (Vea a continuación más información sobre ámbitos).
Cuando haya creado la clave, seleccione Copiar para recuperar la clave de acceso que va a necesitar en la CLI:

Advertencia
Mantenga siempre la clave de API en un secreto. Trate la clave de API como una contraseña que permita a cualquier persona administrar paquetes en su nombre. Debe eliminar o volver a generar la clave de API si se revela accidentalmente.
Importante
Guarde la clave en una ubicación segura porque después no se puede volver a copiar. Si vuelve a la página de clave de API, ha de volver a generar la clave para copiarla. También puede quitar la clave de API si ya no desea insertar paquetes.
El ámbito permite crear claves de API independientes con distintos fines. Cada clave tiene su plazo de expiración y su ámbito puede establecerse en paquetes específicos (o patrones globales). El ámbito de cada clave también se puede establecer en operaciones específicas: insertar nuevos paquetes y actualizaciones, insertar solo actualizaciones o quitar de la lista. A través del ámbito, puede crear claves de API para distintas personas que administran paquetes para su organización, de manera que solo tengan los permisos que necesitan. Para más información, consulte las claves de API con ámbito.
Publicar con dotnet nuget push
Cambie a la carpeta que contiene el archivo
.nupkg.Ejecute el comando siguiente; especifique el nombre del paquete (identificador único del paquete) y reemplace el valor de clave por su clave de API:
dotnet nuget push AppLogger.1.0.0.nupkg --api-key qz2jga8pl3dvn2akksyquwcs9ygggg4exypy3bhxy6w6x6 --source https://api.nuget.org/v3/index.jsondotnet muestra los resultados del proceso de publicación:
info : Pushing AppLogger.1.0.0.nupkg to 'https://www.nuget.org/api/v2/package'... info : PUT https://www.nuget.org/api/v2/package/ info : Created https://www.nuget.org/api/v2/package/ 12620ms info : Your package was pushed.
Vea dotnet nuget push.
Errores de publicación
Los errores del comando push suelen indicar el problema. Por ejemplo, quizás haya olvidado actualizar el número de versión del proyecto y, por tanto, está intentando publicar un paquete que ya existe.
También verá errores al intentar publicar un paquete con un identificador que ya existe en el host. Por ejemplo, el nombre "AppLogger" ya existe. En tal caso, el comando push genera el siguiente error:
Response status code does not indicate success: 403 (The specified API key is invalid,
has expired, or does not have permission to access the specified package.).
Si usa una clave de API válida que acaba de crear, este mensaje indica un conflicto de nomenclatura, que no queda completamente claro en la parte "permiso" del error. Cambie el identificador del paquete, recompile el proyecto, vuelva a crear el archivo .nupkg e intente ejecutar de nuevo el comando push.
Administrar el paquete publicado
Desde su perfil en nuget.org, seleccione Administrar paquetes para ver el que acaba de publicar. También recibirá un correo electrónico de confirmación. Tenga en cuenta que es posible que se tarde un tiempo en indexar el paquete y en aparecer en los resultados de la búsqueda donde otros usuarios puedan encontrarlo. Durante ese tiempo, la página del paquete muestra el mensaje siguiente:

Y listo. Acaba de publicar el primer paquete NuGet en nuget.org que otros desarrolladores pueden usar en sus propios proyectos.
Si en este tutorial crea un paquete que no es realmente útil (por ejemplo, un paquete creado con una biblioteca de clase vacía), lo debe quitar de la lista para ocultarlo en resultados de búsqueda:
En nuget.org, seleccione su nombre de usuario (esquina superior derecha de la página) y luego Administrar paquetes.
Busque el paquete que quiere quitar la de lista Publicado y seleccione el icono de la papelera de la derecha:

En la página subsiguiente, desactive la casilla List (package-name) in search results (Mostrar [nombre_del_paquete] en la lista de resultados de la búsqueda) y seleccione Guardar:

Vídeo relacionado
Encuentre más vídeos de NuGet en Channel 9 y YouTube.
Pasos siguientes
¡Enhorabuena por crear su primer paquete NuGet!
Para explorar más de lo que NuGet ofrece, seleccione los siguientes vínculos.