Упаковка библиотеки классов Razor

Завершено

Часто выполняемая задача — это упаковка библиотек для повторного использования другими разработчиками. Благодаря пакету NuGet любой разработчик может легко получить все ссылки .NET, правильно настроенные для своего приложения.

В предыдущем модуле вы создали компонент модального диалогового окна и использовали его в приложении. Теперь вы хотите использовать его в других приложениях.

В этом модуле показано, как настроить библиотеку классов Razor как пакет NuGet. Вы также узнаете, как упаковать библиотеку для распространения с помощью службы репозитория пакетов, например NuGet.org или GitHub.

Настройка библиотеки классов Razor для упаковки NuGet

Экосистема .NET позволяет легко определить свойства, требуемые другим разработчикам для идентификации и использования ваших компонентов. Все эти свойства можно определить в файле проекта (*.csproj) вашей библиотеки классов Razor, чтобы они перемещались и обновлялись соответствующим образом при обновлении вашей библиотеки.

Настройку полей для идентификации вашего пакета можно выполнить в диалоговом окне Свойства проекта Visual Studio — пакет или самостоятельно создать записи непосредственно в файле *.csproj.

Для создания пакета нужно заполнить четыре поля:

Поле Description Default value
PackageId Идентификатор пакета, уникальный во всем репозитории NuGet. Значение AssemblyName библиотеки
Версия Конкретный номер версии в форме основная_версия.незначительная_версия.исправление[-суффикс], где -суффикс необязательно определяет предварительные версии. 1.0.0
Авторы Авторы пакета. AssemblyName
Company Имя компании, ответственной за создание и публикацию пакета. AssemblyName

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

В предыдущем модуле было показано, что статическое содержимое библиотеки классов Razor доступно здесь: _content/[PACKAGE_ID]/. Теперь вы видите, где настроено значение PackageId.

Пример файла проекта с этими значениями может выглядеть так:

<PropertyGroup>
    <PackageId>Learn.MyFirstLibrary</PackageId>
    <Version>0.1.0-alpha1</Version>
    <Authors>Susan Developer, Terry Programmer</Authors>
    <Company>AdventureWorks</Company>
</PropertyGroup>

Вы также можете настроить проект для создания пакета NuGet при сборке, выбрав параметр Создать пакет NuGet при сборке в диалоговом окне Свойства проекта Visual Studio или добавив запись GeneratePackageOnBuild рядом с другими полями пакета.

<GeneratePackageOnBuild>True</GeneratePackageOnBuild>

Можно настроить множество необязательных свойств проекта, в том числе:

  • Description для показа в репозитории NuGet
  • Уведомление об авторских правах
  • Сведения о лицензировании
  • Значки
  • URL-адреса проектов

Полный список свойств см. в документации Microsoft по целевому объекту пакета MSBuild.

Упаковка библиотеки

После записи конфигурации библиотеки в файл *.csproj можно создать пакет NuGet в Visual Studio, щелкнув правой кнопкой мыши проект и выбрав команду Упаковать, или в папке проекта, выполнив следующую команду:

dotnet pack

Команда dotnet pack создаст пакет с идентификатором PackageID и номером версии и поместит его в папку выходных данных сборки стандартного проекта.

Проверьте свои знания

1.

Какое свойство проекта является значением по умолчанию для PackageId?