Nota
L'accés a aquesta pàgina requereix autorització. Podeu provar d'iniciar la sessió o de canviar els directoris.
L'accés a aquesta pàgina requereix autorització. Podeu provar de canviar els directoris.
En este inicio rápido se muestra cómo crear rápidamente un paquete NuGet desde una biblioteca de clases de .NET y publicarlo en nuget.org mediante la interfaz de línea de comandos de .NET o la CLI de dotnet.
Prerequisites
El SDK .NET, que proporciona la herramienta de línea de comandos de dotnet. A partir de Visual Studio 2017, la CLI de dotnet se instala automáticamente con cualquier carga de trabajo relacionada con .NET o .NET Core.
Una cuenta gratuita en nuget.org. Siga las instrucciones que aparecen en Agregar una nueva cuenta individual.
Creación de un proyecto de biblioteca de clases
Puede usar un proyecto de biblioteca de clases de .NET existente para el código que desea empaquetar o crear un proyecto sencillo como se indica a continuación:
- Cree una carpeta denominada AppLogger.
- Abra una terminal y navegue a la carpeta AppLogger. Todos los comandos de la CLI de dotnet de este inicio rápido se ejecutan en la carpeta actual de forma predeterminada.
- Escriba
dotnet new classlib, que crea un proyecto con el nombre de carpeta actual.
Para obtener más información, vea dotnet new.
Adición de metadatos de paquete al archivo de proyecto
Cada paquete NuGet tiene un manifiesto que describe el contenido y las dependencias del paquete. En el paquete final, el manifiesto es un archivo .nuspec , que usa las propiedades de metadatos de NuGet que se incluyen en el archivo del proyecto.
Abra el archivo de proyecto .csproj, .fsproj o .vbproj y agregue las siguientes propiedades dentro de la etiqueta existente <PropertyGroup> . Use sus propios valores para el nombre y la empresa y reemplace el identificador del paquete por un valor único.
<PackageId>Contoso.08.28.22.001.Test</PackageId>
<Version>1.0.0</Version>
<Authors>your_name</Authors>
<Company>your_company</Company>
Importante
El identificador del paquete debe ser único entre nuget.org y otros orígenes de paquete. La publicación hace que el paquete sea visible públicamente, por lo que si usa la biblioteca appLogger de ejemplo u otra biblioteca de pruebas, use un nombre único que incluya Sample o Test.
Puede agregar las propiedades opcionales descritas en propiedades de metadatos de NuGet.
Nota:
En el caso de los paquetes que cree para el consumo público, preste especial atención a la propiedad PackageTags. Las etiquetas ayudan a otros usuarios a encontrar el paquete y a comprender lo que hace.
Ejecutar el comando pack
Para compilar un paquete NuGet o un archivo .nupkg desde el proyecto, ejecute el comando dotnet pack , que también compila el proyecto automáticamente.
dotnet pack
La salida muestra la ruta de acceso al archivo .nupkg :
MSBuild version 17.3.0+92e077650 for .NET
Determining projects to restore...
Restored C:\Users\myname\source\repos\AppLogger\AppLogger.csproj (in 64 ms).
AppLogger -> C:\Users\myname\source\repos\AppLogger\bin\Debug\net6.0\AppLogger.dll
Successfully created package 'C:\Users\myname\source\repos\AppLogger\bin\Debug\Contoso.08.28.22.001.Test.1.0.0.nupkg'.
Generar automáticamente el paquete en la compilación
Para ejecutar dotnet pack automáticamente cada vez que ejecute dotnet build, agregue la línea siguiente al archivo del proyecto en <PropertyGroup>:
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
Publicación del paquete
Publique el archivo .nupkg en nuget.org mediante el comando dotnet nuget push con una clave de API que obtenga de nuget.org.
Nota:
Nuget.org escanea todos los paquetes subidos en busca de virus y rechaza cualquier paquete que contenga virus. Nuget.org también examina todos los paquetes enumerados existentes periódicamente.
Los paquetes que publique en nuget.org son visibles para otros desarrolladores, a menos que los quite de la lista. Para hospedar paquetes de forma privada, consulte Hospedaje de fuentes de NuGet propias.
Obtención de la clave de API
Inicie sesión en su cuenta de nuget.org o cree una cuenta si aún no tiene una.
En la esquina superior derecha, seleccione el nombre de usuario y, a continuación, seleccione Claves de API.
Seleccione Crear y escriba un nombre para la clave.
En Seleccionar ámbitos, seleccione Push.
Bajo Seleccionar paquetes, para Patrón Glob, escriba un asterisco (*).
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 cualquier usuario puede usar para 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.
La delimitación proporciona una manera de crear claves de API independientes con distintos fines. Cada clave tiene un período de caducidad y puedes limitar el uso de la clave a paquetes específicos o a patrones glob. 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 obtener más información, consulte las Claves de API con ámbito.
Publicar con dotnet nuget push
En la carpeta que contiene el archivo .nupkg , ejecute el siguiente comando. Reemplace <package-file> por el nombre del archivo .nupkg y reemplace por <API-key> la clave de API.
dotnet nuget push <package-file> --api-key <API-key> --source https://api.nuget.org/v3/index.json
La salida muestra los resultados del proceso de publicación:
Pushing <package-file> to 'https://www.nuget.org/api/v2/package'...
PUT https://www.nuget.org/api/v2/package/
Created https://www.nuget.org/api/v2/package/ 2891ms
Your package was pushed.
Para obtener más información, consulte dotnet nuget push.
Errores de publicación
Al ejecutar el push comando, a veces se produce un error. Por ejemplo, es posible que reciba un error en las situaciones siguientes:
- La clave de API no es válida o ha expirado.
- Intenta publicar un paquete que tenga un identificador que ya existe en el host.
- Realiza cambios en un paquete publicado, pero se olvida de actualizar el número de versión antes de intentar publicarlo de nuevo.
El mensaje de error suele indicar el origen del problema.
Por ejemplo, supongamos que el identificador Contoso.App.Logger.Test existe en nuget.org. Si intenta publicar un paquete con ese identificador, obtendrá 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.).
Para solucionar esta situación, compruebe el ámbito, la fecha de expiración y el valor de la clave de API. Si la clave es válida, el error indica que el identificador del paquete ya existe en el host. Para solucionar el problema, cambie el identificador del paquete para que sea único, recompile el proyecto, vuelva a crear el archivo .nupkg y vuelva a intentar el push comando.
Administrar el paquete publicado
Cuando el paquete se publique correctamente, recibirá un correo electrónico de confirmación. Para ver el paquete publicado, vaya a nuget.org, seleccione el nombre de usuario en la esquina superior derecha y, a continuación, seleccione Administrar paquetes.
Nota:
El paquete puede tardar un tiempo en indizarse y aparecer en los resultados de búsqueda donde otros pueden encontrarlo. Durante ese tiempo, el paquete aparece en Paquetes no registrados y la página del paquete muestra el mensaje siguiente:
Ahora que el paquete NuGet se publica en nuget.org, otros desarrolladores pueden usarlo en sus proyectos.
Si crea un paquete que no es útil (por ejemplo, este paquete de ejemplo desde una biblioteca de clases vacía) o si no desea que el paquete sea visible, puede anular la lista del paquete para ocultarlo de los resultados de la búsqueda:
Después de que el paquete aparezca en Paquetes publicados en la página Administrar paquetes , seleccione el icono de lápiz situado junto a la lista de paquetes.
En la página siguiente, seleccione Lista, desactive la casilla Lista en los resultados de búsqueda y, a continuación, seleccione Guardar.
El paquete aparece ahora en Paquetes no registrados en Administrar paquetes y ya no aparece en los resultados de búsqueda.
Nota:
Para evitar que el paquete de prueba esté activo en nuget.org, puede enviarlo al 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.
Enhorabuena por crear y publicar su primer paquete NuGet.
Vídeo relacionado
Encuentra más vídeos de NuGet en Channel 9 y YouTube.
Pasos siguientes
Consulte más detalles sobre cómo crear paquetes con la CLI de dotnet:
Obtenga más información sobre cómo crear y publicar paquetes NuGet: