Поделиться через


Создание новой многоплатформной библиотеки для NuGet

Создание проекта многоплатформной библиотеки, использующего PCL или .NET Standard, означает, что результирующий nuGet можно добавить в любой проект .NET, поддерживающий целевой профиль, включая ASP.NET проекты или классические приложения с помощью WinForms, WPF или UWP.

Библиотека может содержать только код, поддерживаемый выбранным профилем PCL или .NET Standard, а также любыми другими добавленными NuGet. Это подходит для бизнес-логики и алгоритмов, которые можно выразить полностью в библиотеке базовых классов .NET.

Одна сборка создается и встроена в пакет NuGet.

Если вам потребуется функциональность для конкретной платформы, можно добавить проекты для конкретной платформы.

Действия по созданию многоплатформной библиотеки NuGet

  1. Выберите "Создать файл > " (или щелкните правой кнопкой мыши существующее решение и нажмите кнопку "Добавить > новый проект").

  2. Выберите многоплатформную библиотеку из раздела библиотеки Multiplatform>:

    Screenshot shows Choose a template with Multiplatform Library selected.

  3. Введите имя и описание и выберите "Один" для всех платформ:

    Screenshot shows values entered for Name, Description, and Implementation.

  4. Завершите работу мастера. В решении создается один проект библиотеки.

  5. Щелкните правой кнопкой мыши новый проект библиотеки и выберите пункт "Параметры". Раздел "Общие сборки>" позволяет задать целевую платформу. Выберите профиль .NET Portable PCL или версию .NET Standard:

    Choose PCL or .NET Standard for library type

  6. Также в окне параметров проекта откройте раздел метаданных пакета > NuGet и введите необходимые метаданные (а также любые необязательные метаданные):

    Enter required metadata

  7. Щелкните правой кнопкой мыши проект библиотеки и выберите "Создать пакет NuGet" (или создать или развернуть решение), а файл пакета NuGet .nupkg будет сохранен в папке /bin/ (отладка или выпуск в зависимости от конфигурации):

    The NuGet package file will be saved in the bin folder either Debug or Release, depending on configuration

Проверка выходных данных

Пакеты NuGet также являются ZIP-файлами, поэтому можно проверить внутреннюю структуру созданного пакета.

Снимок экрана: содержимое NuGet на основе PCL— включается только одна сборка PCL:

Files contained in the NuGet package

Добавление кода для конкретной платформы

Проекты на основе PCL и проекты на основе .NET Standard не могут содержать ссылки на платформу (например, функции iOS или Android).

Если существующий проект PCL или проект .NET Standard необходимо развернуть, чтобы включить код для конкретной платформы, это можно сделать, щелкнув проект правой кнопкой мыши и выбрав добавить добавление > реализации платформы...:

Add platform implementation menu

В решение можно добавить один или несколько проектов платформы, а существующую библиотеку PCL или .NET Standard можно при необходимости преобразовать в общий проект:

Add platform options such as iOS, Android, and Shared Project

После преобразования в общий проект посетите раздел "Эталонныесборки пакетов > NuGet" в разделе "Параметры > проекта" и убедитесь, что выбраны все необходимые профили (чтобы NuGet по-прежнему совместим с проектами, в которых он ранее использовался).