Создание пакета NuGet
После упаковки нашей библиотеки классов Razor вы получите двоичный файл, на который могут ссылаться проекты Blazor, а содержащиеся в нем компоненты могут использоваться в этих проектах.
В предыдущем модуле вы создали библиотеку классов Razor, содержащую модальный компонент, который предоставляет модальное диалоговое окно для приложений Blazor. Чтобы поделиться этим компонентом для использования в других приложениях, нам нужно упаковать и поместить его в репозиторий или папку, где его смогут получить другие разработчики.
В этом уроке вы обновите этот проект и создадите пакет NuGet. Наконец, вы развернете этот пакет NuGet в приложении сервера Blazor.
Добавление свойств пакета в FirstClassLibrary
Сначала мы обновим проект FirstClassLibrary, добавив в него свойства, которые позволят упаковать его для развертывания в виде пакета NuGet.
Откройте файл проекта для проекта MyClassLibrary, дважды щелкнув проект в Обозревателе решений Visual Studio или открыв MyClassLibrary.csproj в Visual Studio Code.
В разделе в верхней части файла с тегом
<PropertyGroup>
добавьте следующее содержимое перед закрывающим тегом</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>
Этот код определяет библиотеку классов Razor как
<PackageId>
"My.FirstClassLibrary" и<Version>
0.1.0. Введите в этих двух полях собственное имя и имя компании.
Упаковка библиотеки для повторного использования
Затем вы выполните команду .NET в командной строке, чтобы упаковать библиотеку классов Razor, чтобы другие приложения за пределами нашего решения могли ссылаться на нее.
Вы можете выполнить эти же шаги в ходе непрерывной интеграции, чтобы упаковать библиотеку и развернуть ее на NuGet.org, в репозитории GitHub или в другом расположении для совместного использования вашей организацией.
В той же папке, в которой находится файл MyClassLibrary.csproj, выполните следующую команду:
dotnet pack
Эта команда записывает файл с именем My.FirstClassLibrary.0.1.0.nupkg в папку bin/Debug.
Добавление ссылки на пакет NuGet в приложении MyBlazorServer
Вы уже ссылались на проект FirstClassLibrary в приложении MyBlazorServer, так как он был в той же структуре папок, что и веб-приложение.
Теперь отменим ссылку на проект и добавим ссылку на созданный нами пакет NuGet.
Эти действия НЕ являются типичной конфигурацией. Проекты библиотеки, расположенные в тех же папках или решении, что и приложения, которые должны ссылаться на них, могут напрямую ссылаться на проект, как мы видели в предыдущем упражнении.
Откройте файл MyBlazorServer.csproj, дважды щелкнув имя проекта MyBlazorServer в Visual Studio или открыв файл в Visual Studio Code.
В файле MyBlazorServer.csproj удалите следующую строку:
<ProjectReference Include="..\FirstClassLibrary\FirstClassLibrary.csproj" />
В той же папке, что и MyBlazorServer.csproj, выполните следующую команду:
dotnet add package My.FirstClassLibrary -s ..\FirstClassLibrary\bin\Debug
Эта команда захватывает созданный ранее пакет NuGet, устанавливает копию в локальном кэше пакетов NuGet, а затем добавляет ссылку на этот пакет в файле MyBlazorServer.csproj .
Проверьте свою работу
Правильно ли установился новый пакет? Можно ли запустить приложение FirstServer и увидеть модальное окно при запуске приложения?
Давайте узнаем.
Запустите приложение MyBlazorServer в Visual Studio, выбрав F5 или в папке MyBlazorServer, выполнив следующую команду:
dotnet run
В браузере перейдите на домашнюю страницу приложения MyBlazorServer:
https://localhost:5000
Отображается Мое первое модальное диалоговое окно? Если видите, — поздравляем! Вы успешно выполнили упаковку и развертывание проекта FirstClassLibrary. Приложения теперь могут использовать ваш компонент модального окна отовсюду, ссылаясь на ваш новый пакет NuGet.