Создание пакета NuGet

Завершено

Когда вы упаковываете свою библиотеку классов Razor, у вас получается бинарный файл, на который могут ссылаться другие проекты Blazor, а компоненты из него можно использовать в этих проектах.

В предыдущем уроке вы создали библиотеку классов Razor с модальным компонентом, который предоставляет модальное диалоговое окно для приложений Blazor. Чтобы поделиться этим компонентом для использования в других приложениях, необходимо упаковать и поместить его в репозиторий или папку, где другие разработчики могут получить его.

В этом уроке вы обновите этот проект и создайте пакет NuGet. Наконец, вы развернете этот пакет NuGet в серверное приложение Blazor.

Добавление свойств пакета в FirstClassLibrary

Начните с обновления проекта FirstClassLibrary с свойствами, которые позволяют упаковать его для развертывания в виде пакета NuGet.

  1. Откройте файл проекта FirstClassLibrary . Дважды щелкните проект в обозревателе решений Visual Studio или откройте файл FirstClassLibrary.csproj в Visual Studio Code.

  2. В верхней части файла в разделе с тегом <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.

Следующие шаги не описывают типичную конфигурацию. Проекты библиотеки, которые находятся в одних и том же папках или решении, что и приложения, которые хотят ссылаться на них, могут напрямую ссылаться на проект, как показано в предыдущем упражнении.

  1. Откройте файл MyBlazorApp.csproj , дважды щелкнув имя проекта MyBlazorApp в Visual Studio или открыв файл в Visual Studio Code.

  2. В файле MyBlazorApp.csproj удалите следующую строку:

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

  3. В той же папке, что и MyBlazorApp.csproj, выполните следующую команду:

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

    Эта команда захватывает созданный ранее пакет NuGet, устанавливает копию в локальном кэше пакетов NuGet, а затем добавляет ссылку на этот пакет в файле MyBlazorApp.csproj .

Проверьте вашу работу

Правильно ли установлен новый пакет? Можно ли запустить приложение FirstServer и увидеть модальное окно при запуске приложения?

Давайте узнаем:

  1. Запустите приложение MyBlazorApp в Visual Studio, выбрав F5 или в папке MyBlazorApp, выполнив следующую команду:

    dotnet run

  2. В браузере перейдите на домашнюю страницу приложения MyBlazorApp: https://localhost:5000

    Отображается ли мой первый модальный диалог? Если да, поздравляем! Вы успешно упаковали и развернули проект FirstClassLibrary правильно. Во всех приложениях теперь можно использовать ваш компонент модального окна, ссылаясь на вновь созданный пакет NuGet.