Tworzenie pakietu NuGet

Ukończone

Podczas tworzenia pakietu biblioteki klas Razor masz binarny element dostarczany, do którego można odwoływać się w projektach platformy Blazor, a składniki w nim mogą być używane w tych projektach.

We wcześniejszej lekcji utworzono bibliotekę klas Razor z modalnym składnikiem, który dostarcza modalne okno dialogowe dla aplikacji Blazor. Aby udostępnić ten składnik do użycia w innych aplikacjach, należy spakować go i umieścić w repozytorium lub folderze, w którym inni deweloperzy mogą go uzyskać.

W tej lekcji zaktualizujesz ten projekt i wygenerujesz pakiet NuGet. Na koniec wdrożysz ten pakiet NuGet w aplikacji serwera Blazor.

Dodawanie właściwości pakietu do klasy FirstClassLibrary

Zacznij od zaktualizowania projektu FirstClassLibrary z właściwościami, które umożliwią spakowanie go do wdrożenia jako pakietu NuGet.

  1. Otwórz plik projektu dla projektu MyClassLibrary, klikając dwukrotnie projekt w programie Visual Studio Eksplorator rozwiązań lub otwierając plik MyClassLibrary.csproj w programie Visual Studio Code.

  2. W górnej części pliku w sekcji z tagiem <PropertyGroup> dodaj następującą zawartość przed tagiem zamykającym </PropertyGroup> :

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

    Ten kod definiuje bibliotekę klas Razor jako <PackageId> "My.FirstClassLibrary" i <Version> 0.1.0. Wprowadź własną nazwę i nazwę firmy w tych dwóch polach.

Spakuj bibliotekę do ponownego użycia

Następnie uruchom polecenie .NET w wierszu polecenia, aby spakować bibliotekę klas Razor, aby inne aplikacje spoza rozwiązania mogły się do niego odwoływać.

Te same kroki można wykonać w procesie ciągłej integracji, aby spakować bibliotekę i wdrożyć ją w NuGet.org, repozytorium GitHub lub inną lokalizację, w której organizacja ma zostać udostępniona.

W tym samym folderze co plik MyClassLibrary.csproj uruchom następujące polecenie:

dotnet pack

To polecenie zapisuje plik o nazwie My.FirstClassLibrary.0.1.0.nupkg do folderu bin/Debug .

Dodawanie odwołania do pakietu NuGet w aplikacji MyBlazorServer

Odwołano się już do projektu FirstClassLibrary w aplikacji MyBlazorServer, ponieważ znajdowała się ona w tej samej strukturze folderów co aplikacja internetowa.

Teraz cofniesz odwołanie do tego projektu i dodasz odwołanie do utworzonego wcześniej pakietu NuGet.

Te kroki nietypową konfiguracją. Projekty bibliotek, które znajdują się w tych samych folderach lub rozwiązaniu, co aplikacje, które chcą się do nich odwoływać, mogą odwoływać się bezpośrednio do projektu, jak pokazano w poprzednim ćwiczeniu.

  1. Otwórz plik MyBlazorServer.csproj, klikając dwukrotnie nazwę projektu MyBlazorServer w programie Visual Studio lub otwierając plik w programie Visual Studio Code.

  2. W pliku MyBlazorServer.csproj usuń następujący wiersz:

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

  3. W tym samym folderze co MyBlazorServer.csproj uruchom następujące polecenie:

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

    To polecenie pobiera utworzony wcześniej pakiet NuGet, instaluje kopię w lokalnej pamięci podręcznej pakietów NuGet, a następnie dodaje odwołanie do tego pakietu w pliku MyBlazorServer.csproj .

Sprawdź swoją pracę

Czy nowy pakiet został poprawnie zainstalowany? Czy można uruchomić aplikację FirstServer i zobaczyć modalne okno po uruchomieniu aplikacji?

Dowiedzmy się:

  1. Uruchom aplikację MyBlazorServer w programie Visual Studio, wybierając pozycję F5 lub w folderze MyBlazorServer, uruchamiając następujące polecenie:

    dotnet run

  2. W przeglądarce przejdź do strony głównej aplikacji MyBlazorServer: https://localhost:5000.

    Czy zostanie wyświetlone okno dialogowe Moje pierwsze modalne okno dialogowe? Jeśli tak, gratulacje! Pomyślnie spakowaliśmy i wdrożono poprawnie projekt FirstClassLibrary . Aplikacje wszędzie mogą teraz używać składnika modalnego okna, odwołując się do nowo utworzonego pakietu NuGet.