Empaquetado de una biblioteca de clases de Razor

Completado

Una tarea que a menudo realizará es empaquetar bibliotecas para que otros desarrolladores puedan reutilizarla. El empaquetado de NuGet facilita a cualquier desarrollador de cualquier lugar adquirir y configurar adecuadamente todas las referencias .NET para sus aplicaciones.

En la unidad anterior, creó el componente de diálogo modal y lo usó en su propia aplicación. Ahora querrá reutilizarlo en otras aplicaciones.

En esta unidad, aprenderá los pasos necesarios para configurar una biblioteca de clases de Razor como un paquete de NuGet. También aprenderá a empaquetar la biblioteca para su distribución mediante un servicio package-repository, como NuGet.org o repositorios GitHub.

Configuración de una biblioteca de clases de Razor para el empaquetado de NuGet

El ecosistema de .NET facilita la definición de las propiedades necesarias para que otros desarrolladores identifiquen y usen los componentes. Puede definir todas estas propiedades en el archivo de proyecto (*.csproj) de la biblioteca de clases de Razor para que se desplacen con la biblioteca y se actualicen correctamente cuando se actualice la biblioteca.

La configuración de campos para identificar el paquete se puede realizar en el cuadro de diálogo Propiedades de proyecto - Paquete de Visual Studio, o bien puede crear entradas directa y manualmente en el archivo *.csproj.

Los cuatro campos necesarios para crear un paquete son:

Campo Descripción Valor predeterminado
PackageId Identificador de paquete, único en todo el repositorio de NuGet. AssemblyName de la biblioteca
Versión Número de versión específico con el formato Major.Minor.Patch[-Suffix], donde -Suffix define opcionalmente las versiones preliminares. 1.0.0
Authors Autores del paquete. AssemblyName
Compañía Nombre de la empresa responsable de crear y publicar el paquete. AssemblyName

Algunos de estos campos tienen valores predeterminados y podría parecer extraño publicar un paquete con el nombre de empresa MyFirstLibrary. Recomendamos encarecidamente definir estos valores explícitamente.

En la unidad anterior, hemos indicado que el contenido estático de una biblioteca de clases de Razor está disponible en _content/[PACKAGE_ID]/, y ahora verá dónde está configurado el valor PackageId.

Un archivo de proyecto de ejemplo con estos valores configurados podría tener el siguiente aspecto:

<PropertyGroup>
    <PackageId>Learn.MyFirstLibrary</PackageId>
    <Version>0.1.0-alpha1</Version>
    <Authors>Susan Developer, Terry Programmer</Authors>
    <Company>AdventureWorks</Company>
</PropertyGroup>

También puede configurar el proyecto para generar un paquete de NuGet al compilar seleccionando la opción Generar paquete de NuGet al compilar en el cuadro de diálogo Propiedades de proyecto de Visual Studio o agregando una entrada GeneratePackageOnBuild junto a los otros campos del paquete, como se muestra aquí:

<GeneratePackageOnBuild>True</GeneratePackageOnBuild>

Puede configurar muchas propiedades de proyecto opcionales, entre las que se incluyen:

  • Un elemento Description que es adecuado para mostrarse en el repositorio de NuGet
  • Un aviso de copyright
  • Información de licencia
  • Iconos
  • Direcciones URL de proyecto

Para obtener una lista completa de las propiedades, consulte la documentación de Microsoft en el destino de paquetes MSBuild.

Empaquetado de la biblioteca

Después de escribir la configuración de la biblioteca en el archivo *.csproj, puede generar el paquete de NuGet en Visual Studio; para ello, haga clic con el botón derecho en el proyecto y seleccione el comando Paquete o, en la carpeta del proyecto, ejecutando el comando siguiente:

dotnet pack

Este comando dotnet pack genera un paquete con el identificador de paquete y el número de versión y lo colocará en la carpeta de salida de creación del proyecto estándar.

Comprobación de conocimientos

1.

¿Qué propiedad del proyecto es el valor predeterminado para un identificador de paquete?