.NET Core: compartir bibliotecas

En este capítulo, discutiremos cómo compartir su biblioteca como NuGet Packagepara que se pueda consumir dentro de otro proyecto. La creación de un paquete comienza con el código que desea empaquetar y compartir con otros, ya sea a través de la galería pública de nuget.org o una galería privada dentro de su organización. El paquete también puede incluir archivos adicionales como unreadme que se muestra cuando se instala el paquete y puede incluir transformaciones en determinados archivos del proyecto.

Consideremos ahora un ejemplo simple en el que crearemos un paquete NuGet desde nuestra biblioteca. Para hacerlo, abra el símbolo del sistema y vaya a la carpeta donde se encuentra el archivo project.json de su proyecto de biblioteca.

Ejecutemos ahora el siguiente comando.

dotnet help

Al final, puede ver diferentes comandos como nuevo, restaurar y compilar, etc.

El último comando es pack;esto creará un paquete NuGet. Ejecutemos ahora el siguiente comando.

dotnet pack

Ahora puede ver que los paquetes NuGet se generan en la carpeta bin; abramos la carpeta bin \ Debug.

Ahora la pregunta es qué hay dentro de los paquetes NuGet, para ver que podemos usar el Explorador de paquetes NuGet. Abramos ahora el Explorador de paquetes NuGet.

Seleccione la primera opción Open a local package.

Selecciona el StringLibrary.1.0.0.nupkg y haga clic en Open.

Puede ver que en la sección Contenido del paquete solo tenemos StringLibrary.dll. En la sección de metadatos del paquete, verá un poco de información sobre esta biblioteca como Id, Versiones y todas las dependencias.

Abramos ahora el StringLibrary.1.0.0.symbols.nupkg.

En este paquete de NuGet, verá los archivos de origen y el *.pdbarchivo también. Si hace doble clic en elStringLib.cs archivo, verá el código fuente también.

Aquí la pregunta es, cómo se pueden configurar los metadatos como versión, autores y descripción, etc.

El archivo project.json se usa en proyectos .NET Core para definir los metadatos del proyecto, la información de compilación y las dependencias. Abramos ahora el archivo project.json y agreguemos la siguiente información adicional.

{ 
   "authors": [ "Mark Junior" ], 
   "description": "String Library API", 
   "version" : "1.0.1-*", 
   "supports": {}, 
   
   "dependencies": { 
      "Microsoft.EntityFrameworkCore": "1.1.0", 
      "Microsoft.NETCore.Portable.Compatibility": "1.0.1", 
      "NETStandard.Library": "1.6.0", 
      "System.Runtime.Serialization.Json": "4.0.3", 
      "System.Runtime.Serialization.Primitives": "4.3.0" 
   }, 
   "frameworks": { 
      "netstandard1.3": {} 
   } 
}

Ahora puede ver información adicional como el nombre del autor, la descripción y la versión agregada aquí. Guardemos este archivo, construyamos el proyecto de la biblioteca y luego ejecutemos el comando "dotnet pack" nuevamente.

Dentro de la carpeta bin \ Debug, puede ver que los paquetes StringLibrary NuGet se producen con la versión 1.0.1; vamos a abrirlo en NuGet Package Explorer.

Verá los metadatos actualizados. La pregunta ahora es cómo podemos usarlo en otro paquete.

Necesitamos comenzar publicando en algún lugar de la fuente de NuGet y luego podemos consumirlo en otro proyecto.

Hay dos opciones para publicar los metadatos actualizados:

  • Publicarlo en nuget.org
  • Enviar los metadatos a una fuente NuGet privada

Aquí usaremos la fuente privada de NuGet porque es mucho más fácil que configurar una cuenta en nuget.org. Para saber cómo publicar su paquete en nuget.org, puede seguir todas las pautas especificadas aquíhttps://docs.microsoft.com/en-us/nuget/create-packages/publish-a-package.

Siga estos pasos para enviar los metadatos actualizados a una fuente NuGet privada.

Step 1- Para empezar, necesitamos la utilidad de línea de comandos nuget y tenemos que instalarla. Ahora abramos el Administrador de paquetes NuGet y busquemos nuget.commandline.

Step 2 - Seleccione Nuget.Commandline y haga clic en Install.

Step 3 - Click OKpara instalar Nuget.Commandline. También puede instalarlo manualmente descargándolo de la siguiente URLhttps://dist.nuget.org/index.html y luego configure la variable de entorno.

Step 4 - Una vez finalizada la instalación, volvemos a abrir el símbolo del sistema y vamos al bin\Debug carpeta donde se encuentran los paquetes NuGet y especifique el siguiente comando:

nuget add StringLibrary.1.0.1.nupkg -Source D:\PrivateNugetPackages

Step 5 - En el comando anterior, agregamos el paquete StringLibrary.1.0.1.nupkg a nuestro feed privado y la ubicación es D:\PrivateNugetPackages, -Source especifica la fuente del paquete.

Step 6 - Puedes ver que el StringLibraryesta instalado; laStringLibrary se puede agregar más al feed privado.

Step 7 - Vayamos a esa carpeta.

Step 8 - Dentro del stringlibrary carpeta, verá otra carpeta con el nombre de la versión y aquí está 1.0.1.

El paquete NuGet se encuentra aquí.