csharp-paquetes-nuget

Cómo usar paquetes Nuget en C#

NuGet es el administrador de paquetes creado por Microsoft para la gestión de bibliotecas en proyectos de .NET. Mediante NuGet, podemos descargar e bibliotecas de manera fácil y rápida.

  • Paquetes: Un paquete NuGet es una unidad de distribución que contiene código, recursos y metadatos que describen cómo usarlo. Los paquetes suelen estar en formato .nupkg.

  • Repositorios: NuGet utiliza repositorios para almacenar y distribuir paquetes. El repositorio más común es el nuget.org, pero se pueden usar repositorios locales y privados.

NuGet se encarga de gestionar las dependencias entre las diferentes librerías, asegurando que todas las versiones sean compatibles y evitando conflictos entre ellas.

Además de las librerías de terceros, NuGet también permite la distribución de paquetes propios, lo que facilita la reutilización de código (por ejemplo, dentro de una organización o equipo de desarrollo).

Cómo buscar e instalar paquetes nuget

Los paquetes NuGet se pueden instalar en tu proyecto de varias maneras, incluyendo el uso de la línea de comandos, el Explorador de paquetes en Visual Studio, mediante consola de comandos, o editando directamente el fichero de proyecto .csproj.

Usando la Interfaz de Visual Studio

La forma más común de instalar paquetes NuGet es a través de Visual Studio, donde puedes buscar y descargar paquetes desde la galería NuGet.

Para eso simplemente haz click derecho sobre el proyecto en el Explorador de soluciones, y elige Manage NuGet Packages.

visual-studio-nuget

Te saldrá el administrador de paquetes, donde ver los paquetes instalados en la solución. También puedes actualizar desde aquí los paquetes.

También puedes buscar paquetes para instalar escribiendo el nombre del paquete que necesitas o palabras clave relacionadas.

manage-nuget-packages

Para instalar un paquete, simplemente tienes que hacer click en Install. Visual Studio agregará automáticamente el paquete a tu proyecto y configurará las dependencias en el archivo .csproj.

Usando la línea de comandos

También puedes gestionar los paquetes Nuget desde consola de comando con el CLI de .NET *(por ejemplo, porque no estás usando Visual Studio)**.

Para instalar el Paquete con el CLI de .NET haríamos,

dotnet add package <nombre del paquete> --version <nueva versión>

Si se omite --version <nueva version> se instalará la versión estable más reciente disponible

Otros comandos básicos de Nuget en CLI son:

  • dotnet remove package <nombre-del-paquete>: Elimina el paquete especificado.
  • dotnet restore: Restaura todas las dependencias de tu proyecto, descargando las versiones de los paquetes indicadas.
  • dotnet list package: Muestra una lista de los paquetes instalados en tu proyecto.

Para actualizar un paquete, se usa también add, como si lo instalaras de cero.

Configuración y uso de paquetes NuGet en un Proyecto

Una vez que un paquete está instalado, sus funciones ya están disponibles para usarlas en tu código. No hay nada más que hacer.

Sin embargo, en general, los paquetes externos tendrán sus funciones en un Namespace, que tendremos que referenciar en nuestro código.

Por ejemplo, pongamos el ejemplo de la popular biblioteca Newtonsoft.Json,

// importamos el namespace
using Newtonsoft.Json;

Persona persona = new Persona { Nombre = "Carlos", Edad = 25 };
string json = JsonConvert.SerializeObject(persona);
Console.WriteLine(json);

En este ejemplo, JsonConvert es una clase que forma parte de Newtonsoft.Json y permite convertir un objeto en un string JSON.

Crear un paquete nuget personalizado

Si desarrollas una biblioteca, también puedes empaquetarla como un paquete NuGet. Esto es particularmente útil en entornos colaborativos.

Para ello, en primer lugar asegúrate de que todo compile correctamente (si no no te va a dejar crearlo) y que toda la funcionalidad esté bien documentada.

Ahora, en la terminal, navega al directorio del proyecto y ejecuta:

dotnet pack

Este comando creará un archivo .nupkg, el cual contiene todo lo necesario para distribuir tu biblioteca.

Alternativamente, en Visual Studio hay un “tick” en Configuración del Proyecto / Package, que permite generar el Nuget automáticamente en cada build.

generate-nuget-package-on-build

Compartir un paquete NuGet personalizado

Si quieres compartir tu paquete personalizado, puedes hacerlo de varias formas

  • Puedes compartirlo públicamente, subiéndolo a un repositorio como nuget.org.
  • Puedes compartirlo privadamente, subiéndolo a un repositorio privado (seguramente, será de pago)
  • Puedes crear tu propio repositorio privado. Hay varias formas, pero la más sencilla es simplemente crear una carpeta de red, y meter los Nuget dentro.