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