Создание новой библиотеки многоплатформенного для NuGetCreating a New Multiplatform Library for NuGet

Создание проекта библиотеки многоплатформенных, который использует PCL или .NET Standard означает, что полученный NuGet можно добавить к любому проекту .NET, который поддерживает целевой профиль, включая проекты ASP.NET и классических приложений с помощью WinForms, WPF или UWP.Creating a Multiplatform Library project that uses PCL or .NET Standard means that the resulting NuGet can be added to any .NET project that supports the target profile, including ASP.NET projects, or desktop apps using WinForms, WPF, or UWP.

Библиотека может содержать только код, поддерживаемый выбранный профиль PCL или .NET Standard, а также пакеты NuGet, которые добавляются.The library can only contain code supported by the selected PCL or .NET Standard profile, as well as any other NuGets that are added. Это подходит для бизнес-логику и алгоритмы, которые могут быть выражены полностью в библиотеке базовых классов .NET.This is suited to business logic and algorithms that can be expressed entirely in the .NET base class library.

Одна сборка создается и построение в пакет NuGet.A single assembly is created and built into a NuGet package.

Если в дальнейшем функциям конкретной платформы, можно добавить проекты под конкретные платформы.If you later need platform-specific functionality, platform-specific projects can be added.

Шаги по созданию NuGet многоплатформенная библиотекаSteps to Create a Multiplatform Library NuGet

  1. Выберите файл > новое решение (или щелкните правой кнопкой мыши существующее решение и выберите Добавить > Новый проект).Select File > New Solution (or right click an existing solution and choose Add > New Project).

  2. Выберите многоплатформенные библиотеки из Многоплатформенность > Библиотека раздел:Choose Multiplatform Library from the Multiplatform > Library section:

  1. Введите имя и описаниеи выберите единый для всех платформ:Enter a Name and Description, and choose Single for all platforms:

  1. Завершите работу мастера.Complete the wizard. Отдельная библиотека проект создается в решении.A single library project is created in the solution.

  2. Щелкните правой кнопкой мыши новый проект библиотеки, а затем выберите параметры.Right-click on the new library project and then select Options. Сборки > Общие позволяет требуемой версии .NET Framework задаваемый — выберите в профиле переносимой библиотеки PCL .NET или .NET Standard версии:The Build > General section allows the Target Framework to be set – choose a .NET Portable PCL profile or a .NET Standard version:

  1. Кроме того, в параметры проекта открытое окно пакет NuGet > метаданных раздела и введите необходимые метаданные (а также любые необязательные метаданные):Also in the Project Options window, open the NuGet Package > Metadata section and enter the required metadata (as well as any optional metadata):

  1. Проект библиотеки правой кнопкой мыши и выберите создать пакет NuGet (или сборки или развертывания решения) и .nupkg будет сохранен файл пакета NuGet в /bin/ папка (отладки или выпуска, в зависимости от конфигурации):Right-click on the library project and choose Create NuGet Package (or build or deploy the solution) and the .nupkg NuGet package file will be saved in the /bin/ folder (either Debug or Release, depending on configuration):

Проверка выходных данныхVerifying the Output

Пакеты NuGet также являются ZIP-файлы, поэтому имеется возможность проверить внутреннюю структуру создаваемый пакет.NuGet packages are also ZIP files, so it's possible to inspect the internal structure of the generated package.

На этом снимке экрана показано содержимое NuGet на основе переносимой библиотеки Классов — включается только в одну сборку переносимой библиотеки Классов:This screenshot shows the contents of a PCL-based NuGet – only a single PCL assembly is included:

Добавление кода для конкретных платформAdding Platform-Specific Code

Проекты на основе переносимой библиотеки Классов и проекты на основе .NET Standard не может содержать ссылки на платформы (например, iOS или Android функциональность).PCL-based projects and .NET Standard-based projects cannot contain platform-specific references (such as iOS or Android functionality).

Если существующий проект переносимой библиотеки Классов или проект .NET Standard должен быть развернут для включения кода для конкретных платформ, это можно сделать, щелкнув правой кнопкой мыши на проект и выбрав Добавить > добавить реализацию платформы... :If an existing PCL project or .NET Standard project needs to be expanded to include platform-specific code, this can be done by right-clicking on the project and selecting Add > Add Platform Implementation...:

Один или несколько проектов платформы можно добавить в решение, и при необходимости существующей библиотеки PCL или .NET Standard можно преобразовать в общий проект:One or more platform projects can be added to the solution, and the existing PCL or .NET Standard library can optionally be converted to a Shared Project:

После преобразования в общий проект, посетите параметры проекта > пакет NuGet > ссылочные сборки разделе и убедитесь, что необходимые профили выбраны (таким образом, NuGet продолжает быть совместимы с проектами, в которых он ранее был использован в).After converting to a Shared Project, visit the Project Options > NuGet Package > Reference Assemblies section and ensure that any required profiles are selected (so that the NuGet continues to be compatible with projects it was previously used in).