Skapa ett NuGet-paket

Slutförd

När du paketerar razor-klassbiblioteket har du en binär slutprodukt som andra Blazor-projekt kan referera till och komponenterna i det kan användas i dessa projekt.

I en tidigare lektion skapade du ett Razor-klassbibliotek med en modal komponent som levererar ett modalt dialogfönster för Blazor-program. Om du vill dela komponenten för användning i andra program måste du paketera och placera den i antingen en lagringsplats eller en mapp där andra utvecklare kan hämta den.

I den här lektionen uppdaterar du projektet och genererar ett NuGet-paket. Slutligen distribuerar du NuGet-paketet till ditt Blazor-serverprogram.

Lägga till paketegenskaper i FirstClassLibrary

Börja med att uppdatera FirstClassLibrary-projektet med egenskaper som gör att det kan paketeras för distribution som ett NuGet-paket.

  1. Öppna projektfilen för FirstClassLibrary-projektet . Dubbelklicka antingen på projektet i Visual Studio Solution Explorer eller öppna filen FirstClassLibrary.csproj i Visual Studio Code.

  2. I avsnittet med taggen <PropertyGroup> överst i filen lägger du till följande innehåll före den avslutande </PropertyGroup> taggen:

        <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>
    

    Den här koden definierar ditt Razor-klassbibliotek med <PackageId> "My.FirstClassLibrary" och <Version> 0.1.0. Ange ditt eget namn och företagsnamn i de två fälten.

Paketera biblioteket för återanvändning

Därefter kör du .NET-kommandot på kommandoraden för att paketera Razor-klassbiblioteket så att andra program utanför lösningen kan referera till det.

Du kan köra samma steg i din kontinuerliga integreringsprocess för att paketera ett bibliotek och distribuera det till NuGet.org, en GitHub-lagringsplats eller en annan plats som din organisation kan dela.

Kör följande kommando i samma mapp som filen FirstClassLibrary.csproj :

dotnet pack

Det här kommandot skriver en fil med namnet My.FirstClassLibrary.0.1.0.nupkg till mappen bin/Release .

Lägg till en referens till NuGet-paketet i MyBlazorApp-programmet

Du refererade redan till FirstClassLibrary-projektet i ditt MyBlazorApp-program eftersom det låg i samma mappstruktur som webbprogrammet.

Nu kan du ångra projektreferensen och lägga till en referens till NuGet-paketet som du skapade tidigare.

Följande steg beskriver inte en typisk konfiguration. Biblioteksprojekt som finns i samma mappar eller lösning som de program som vill referera till dem kan referera till projektet direkt, som du såg i den tidigare övningen.

  1. Öppna filen MyBlazorApp.csproj antingen genom att dubbelklicka på projektnamnet MyBlazorApp i Visual Studio eller genom att öppna filen i Visual Studio Code.

  2. Ta bort följande rad i filen MyBlazorApp.csproj :

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

  3. Kör följande kommando i samma mapp som MyBlazorApp.csproj:

    dotnet add package My.FirstClassLibrary -s ../FirstClassLibrary/bin/Release
    

    Det här kommandot hämtar NuGet-paketet som du skapade tidigare, installerar en kopia i din lokala NuGet-paketcache och lägger sedan till en referens till paketet i filen MyBlazorApp.csproj .

Kontrollera ditt arbete

Har det nya paketet installerats korrekt? Kan du starta FirstServer-programmet och se ett modalt fönster när programmet startar?

Låt oss ta reda på följande:

  1. Starta Programmet MyBlazorApp antingen i Visual Studio genom att välja F5 eller i mappen MyBlazorApp genom att köra följande kommando:

    dotnet run

  2. I webbläsaren går du till startsidan för Programmet MyBlazorApp: https://localhost:5000.

    Visas dialogrutan Min första modala dialog-dialogen? I så fall, grattis! Du har paketerat och distribuerat FirstClassLibrary-projektet korrekt. Program överallt kan nu använda din modala fönsterkomponent genom att referera till ditt nyligen skapade NuGet-paket.