В этой главе мы обсудим, как использовать вашу библиотеку как пакет NuGet, чтобы ее можно было использовать в другом проекте. Создание пакета начинается с кода, который вы хотите упаковать и поделиться с другими, через общедоступную галерею nuget.org или частную галерею в вашей организации. Пакет может также включать дополнительные файлы, такие как файл readme, который отображается при установке пакета, и может включать преобразования в определенные файлы проекта.
Давайте теперь рассмотрим простой пример, в котором мы создадим пакет NuGet из нашей библиотеки. Для этого откройте командную строку и перейдите в папку, где находится файл project.json вашего библиотечного проекта.
Давайте теперь запустим следующую команду.
dotnet help
В конце вы можете увидеть различные команды, такие как new, restore и build и т. Д.
Последняя команда — pack; это создаст пакет NuGet. Давайте теперь выполним следующую команду.
dotnet pack
Теперь вы можете видеть, что пакеты NuGet создаются в папке bin; давайте откроем папку bin \ Debug.
Теперь вопрос в том, что находится внутри пакетов NuGet, чтобы увидеть, что мы можем использовать NuGet Package Explorer. Теперь давайте откроем NuGet Package Explorer.
Выберите первый вариант Открыть локальный пакет .
Выберите StringLibrary.1.0.0.nupkg и нажмите Открыть .
Вы можете видеть, что в разделе Содержимое пакета у нас есть только StringLibrary.dll. В разделе метаданных пакета вы увидите немного информации об этой библиотеке, такой как Id, версии и все зависимости.
Давайте теперь откроем StringLibrary.1.0.0.symbols.nupkg .
В этом пакете NuGet вы увидите исходные файлы и файл * .pdb . Если дважды щелкнуть файл StringLib.cs , вы также увидите исходный код.
Здесь вопрос заключается в том, как настроить метаданные, такие как версия, авторы и описание и т. Д.
Файл project.json используется в проектах .NET Core для определения метаданных проекта, информации о компиляции и зависимостей. Теперь давайте откроем файл project.json и добавим следующую дополнительную информацию.
{ "authors": [ "Mark Junior" ], "description": "String Library API", "version" : "1.0.1-*", "supports": {}, "dependencies": { "Microsoft.EntityFrameworkCore": "1.1.0", "Microsoft.NETCore.Portable.Compatibility": "1.0.1", "NETStandard.Library": "1.6.0", "System.Runtime.Serialization.Json": "4.0.3", "System.Runtime.Serialization.Primitives": "4.3.0" }, "frameworks": { "netstandard1.3": {} } }
Теперь вы можете увидеть дополнительную информацию, такую как имя автора, описание и версия, добавленные здесь. Давайте сохраним этот файл, создадим проект библиотеки, затем снова выполним команду «dotnet pack».
Внутри папки bin \ Debug вы можете видеть, что пакеты StringLibrary NuGet производятся с версией 1.0.1; давайте откроем его в NuGet Package Explorer.
Вы увидите обновленные метаданные. Вопрос сейчас в том, как мы можем использовать его в другом пакете.
Нам нужно начать с публикации где-нибудь в фиде NuGet, а затем использовать его в другом проекте.
Существует два варианта публикации обновленных метаданных:
- Опубликуйте его на nuget.org
- Передача метаданных в частный канал NuGet
Здесь мы будем использовать приватный канал NuGet, потому что это намного проще, чем настроить учетную запись на nuget.org. Чтобы узнать, как опубликовать ваш пакет на nuget.org, вы можете следовать всем рекомендациям, указанным здесь https://docs.microsoft.com/en-us/nuget/create-packages/publish-a-package .
Выполните следующие действия, чтобы отправить обновленные метаданные в частный канал NuGet.
Шаг 1 — Для начала нам нужна утилита командной строки nuget, и мы должны установить ее. Теперь давайте откроем менеджер пакетов NuGet и поищем nuget.commandline.
Шаг 2 — Выберите Nuget.Commandline и нажмите Установить .
Шаг 3 — Нажмите OK, чтобы установить Nuget.Commandline. Вы также можете установить его вручную, загрузив его со следующего URL-адреса https://dist.nuget.org/index.html и затем установив переменную среды.
Шаг 4 — После завершения установки, давайте снова откроем командную строку и перейдем в папку bin \ Debug, в которой находятся пакеты NuGet, и укажите следующую команду:
nuget add StringLibrary.1.0.1.nupkg -Source D:\PrivateNugetPackages
Шаг 5 — В приведенной выше команде мы добавляем пакет StringLibrary.1.0.1.nupkg в наш частный канал, и его местоположение — D: \ PrivateNugetPackages , -Source указывает источник пакета.
Шаг 6 — Вы можете видеть, что StringLibrary установлен; StringLibrary может быть дополнительно добавлен в приватный канал.
Шаг 7 — Давайте перейдем к этой папке.
Шаг 8 — Внутри папки stringlibrary вы увидите другую папку с именем версии и здесь она 1.0.1.
Пакет NuGet находится здесь.