Créer un package NuGet

Effectué

Lorsque vous créez un package de votre bibliothèque de classes Razor, vous obtenez un livrable binaire qui peut être référencé par les projets Blazor, et les composants qu’il contient peuvent être utilisés dans ces projets.

Dans une unité précédente, vous avez créé une bibliothèque de classes Razor avec un composant modal qui fournit une fenêtre de boîte de dialogue modale pour les applications Blazor. Pour partager ce composant afin de l’utiliser dans d’autres applications, vous devez l’empaqueter et le placer dans un référentiel ou dans un dossier où d’autres développeurs peuvent l’acquérir.

Dans cette unité, vous allez mettre à jour ce projet et générer un package NuGet. Enfin, vous déploierez ce package NuGet sur votre application de serveur Blazor.

Ajouter des propriétés de package à FirstClassLibrary

Commencez par mettre à jour le projet FirstClassLibrary avec des propriétés qui lui permettront d’être empaqueté en vue d’un déploiement en tant que package NuGet.

  1. Ouvrez le fichier du projet MyClassLibrary soit en double-cliquant sur le projet dans l'Explorateur de solutions Visual Studio, soit en ouvrant le fichier MyClassLibrary.csproj dans Visual Studio Code.

  2. Dans la partie supérieure du fichier, dans la section contenant la balise <PropertyGroup>, ajoutez le contenu suivant avant la balise </PropertyGroup> de fermeture :

        <PackageId>My.FirstClassLibrary</PackageId>
        <Version>0.1.0</Version>
        <Authors>YOUR NAME</Authors>
        <Company>YOUR COMPANY NAME</Company>
        <Description>This is a Razor component library with a cool modal window component.</Description>
      </PropertyGroup>
    

    Ce code précise que votre bibliothèque de classes Razor contient <PackageId>« My.FirstClassLibrary » et <Version> 0.1.0. Saisissez votre propre nom et le nom de votre entreprise dans ces deux champs.

Empaqueter la bibliothèque pour réutilisation

Ensuite, exécutons la commande .NET sur la ligne de commande pour empaqueter la bibliothèque de classes Razor afin que d’autres applications en dehors de votre solution puissent la référencer.

Vous pouvez exécuter ces mêmes étapes dans votre processus d’intégration continue pour empaqueter une bibliothèque et la déployer sur NuGet.org, un référentiel GitHub ou un autre emplacement que votre organisation doit partager.

Dans le même dossier que le fichier MyClassLibrary. csproj, exécutez la commande suivante :

dotnet pack

Cette commande enregistre un fichier nommé My.FirstClassLibrary.0.1.0.nupkg dans votre dossier bin/Debug.

Ajouter une référence au package NuGet dans l’application MyBlazorServer

Vous avez déjà référencé le projet FirstClassLibrary dans votre application MyBlazorServer, car il était dans la même structure de dossiers que l’application web.

Vous allez maintenant annuler cette référence au projet et ajouter une référence au package NuGet que vous avez créé précédemment.

Ces étapes ne sont pas une configuration classique. Les projets de bibliothèque qui résident dans les mêmes dossiers ou solutions que les applications qui souhaitent les référencer peuvent référencer le projet directement, comme vous l’avez vu dans l’exercice précédent.

  1. Ouvrez le fichier MyBlazorServer.csproj en double-cliquant sur le nom du projet MyBlazorServer dans Visual Studio ou en ouvrant le fichier dans Visual Studio Code.

  2. Dans le fichier MyBlazorServer.csproj, supprimez la ligne suivante :

    <ProjectReference Include="..\FirstClassLibrary\FirstClassLibrary.csproj" />

  3. Dans le même dossier que MyBlazorServer.csproj, exécutez la commande suivante :

    dotnet add package My.FirstClassLibrary -s ..\FirstClassLibrary\bin\Debug
    

    Cette commande récupère le package NuGet que vous avez créé précédemment, en installe une copie dans votre cache de package NuGet local, puis ajoute une référence à ce package dans le fichier MyBlazorServer.csproj.

Vérifier votre travail

Votre nouveau package s’est-il correctement installé ? Pouvez-vous démarrer l’application FirstServer et afficher une fenêtre modale au démarrage de l’application ?

C’est ce que nous allons voir :

  1. Démarrez l’application MyBlazorServer soit dans Visual Studio, en sélectionnant F5, soit dans le dossier MyBlazorServer, en exécutant la commande suivante :

    dotnet run

  2. Dans votre navigateur, ouvrez la page d’accueil de l’application MyBlazorServer : https://localhost:5000.

    Voyez-vous la boîte de dialogue « Ma première boîte de dialogue modale » ? Si c’est le cas, félicitations ! Vous avez correctement empaqueté et déployé le projet FirstClassLibrary correctement. Les applications partout peuvent désormais utiliser votre composant de fenêtre modale en référençant votre nouveau package NuGet.