Создание новой многоплатформной библиотеки для NuGet
Создание проекта многоплатформной библиотеки, использующего PCL или .NET Standard, означает, что результирующий nuGet можно добавить в любой проект .NET, поддерживающий целевой профиль, включая ASP.NET проекты или классические приложения с помощью WinForms, WPF или UWP.
Библиотека может содержать только код, поддерживаемый выбранным профилем PCL или .NET Standard, а также любыми другими добавленными NuGet. Это подходит для бизнес-логики и алгоритмов, которые можно выразить полностью в библиотеке базовых классов .NET.
Одна сборка создается и встроена в пакет NuGet.
Если вам потребуется функциональность для конкретной платформы, можно добавить проекты для конкретной платформы.
Действия по созданию многоплатформной библиотеки NuGet
Выберите "Создать файл > " (или щелкните правой кнопкой мыши существующее решение и нажмите кнопку "Добавить > новый проект").
Выберите многоплатформную библиотеку из раздела библиотеки Multiplatform>:
Введите имя и описание и выберите "Один" для всех платформ:
Завершите работу мастера. В решении создается один проект библиотеки.
Щелкните правой кнопкой мыши новый проект библиотеки и выберите пункт "Параметры". Раздел "Общие сборки>" позволяет задать целевую платформу. Выберите профиль .NET Portable PCL или версию .NET Standard:
Также в окне параметров проекта откройте раздел метаданных пакета > NuGet и введите необходимые метаданные (а также любые необязательные метаданные):
Щелкните правой кнопкой мыши проект библиотеки и выберите "Создать пакет NuGet" (или создать или развернуть решение), а файл пакета NuGet .nupkg будет сохранен в папке /bin/ (отладка или выпуск в зависимости от конфигурации):
Проверка выходных данных
Пакеты NuGet также являются ZIP-файлами, поэтому можно проверить внутреннюю структуру созданного пакета.
Снимок экрана: содержимое NuGet на основе PCL— включается только одна сборка PCL:
Добавление кода для конкретной платформы
Проекты на основе PCL и проекты на основе .NET Standard не могут содержать ссылки на платформу (например, функции iOS или Android).
Если существующий проект PCL или проект .NET Standard необходимо развернуть, чтобы включить код для конкретной платформы, это можно сделать, щелкнув проект правой кнопкой мыши и выбрав добавить добавление > реализации платформы...:
В решение можно добавить один или несколько проектов платформы, а существующую библиотеку PCL или .NET Standard можно при необходимости преобразовать в общий проект:
После преобразования в общий проект посетите раздел "Эталонныесборки пакетов > NuGet" в разделе "Параметры > проекта" и убедитесь, что выбраны все необходимые профили (чтобы NuGet по-прежнему совместим с проектами, в которых он ранее использовался).