Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
NuGet использует ссылки на целевую платформу в различных местах, чтобы точно определить и изолировать зависимые от платформы компоненты пакета:
- файл проекта: для проектов в стиле SDK CSPROJ содержит ссылки на целевую платформу.
- Манифест .nuspec. Можно указать в пакете на необходимость включить в проект отдельные пакеты в зависимости от целевой платформы проекта.
- Имя папки .nupkg. Папки внутри папки
libпакета могут иметь имена, соответствующие целевой платформе, и содержать DLL и другие файлы, необходимые для соответствующей платформы. - packages.config. Атрибут
targetframeworkзависимости задает устанавливаемый вариант пакета.
Примечание.
NuGet поддерживает все современные целевые платформы .NET:
- Список последних целевых платформ см . в документации по целевым платформам в документации по проектам в стиле SDK.
Поддерживаемые платформы
Платформа обычно указывается коротким моникером целевой платформы (TFM). В .NET Standard это также обобщено в TxM , чтобы разрешить одну ссылку на несколько платформ.
Примечание.
Исходный код клиента NuGet, который рассчитывает приведенные ниже таблицы, располагается в следующих местах:
- Названия поддерживаемых платформ: FrameworkConstants.cs
- Приоритет и сопоставление платформ: DefaultFrameworkMappings.cs
Клиенты NuGet поддерживают платформы, представленные в следующей таблице. Эквивалентные обозначения отображаются в квадратных скобках []. Обратите внимание, что некоторые средства, например dotnet, могут использовать в некоторых файлах варианты канонических моникеров целевой платформы (TFM). Например, dotnet pack используется .NETCoreApp2.0 в .nuspec файле, а не netcoreapp2.0. Различные клиентские средства NuGet обрабатывают эти варианты различным образом, однако при непосредственном редактировании файлов всегда следует использовать канонические моникеры целевой платформы (TFM).
| Имя. | Аббревиатура | TFM/TxM |
|---|---|---|
| .NET Framework | net | net11 |
| net20 | ||
| net35 | ||
| net40 | ||
| net403 | ||
| net45. | ||
| net451 | ||
| net452 | ||
| net46 | ||
| net461 | ||
| net462 | ||
| net47 | ||
| net471 | ||
| net472 | ||
| net48 | ||
| Microsoft Store (Магазин Windows) | netcore | netcore [netcore45] |
| netcore45 [win, win8] | ||
| netcore451 [win81] | ||
| netcore50 | ||
| .NET MicroFramework | netmf | netmf |
| Windows | победа | win [win8, netcore45] |
| win8 [netcore45, win] | ||
| win81 [netcore451] | ||
| win10 (не поддерживается платформой Windows 10) | ||
| Silverlight | sl | sl4 |
| sl5 | ||
| Windows Phone (SL) | wp | wp [wp7] |
| wp7 | ||
| wp75 | ||
| wp8 | ||
| wp81 | ||
| Windows Phone (UWP) | wpa81 | |
| Универсальная платформа Windows | uap | uap [uap10.0] |
| uap10.0 | ||
| uap10.0.xxxxx (где 10.0.xxxxx является целевой версией минимальной версии используемого приложения) | ||
| .NET Standard | netstandard | netstandard1.0 |
| netstandard1.1 | ||
| netstandard1.2 | ||
| netstandard1.3. | ||
| netstandard1.4 | ||
| netstandard1.5 | ||
| netstandard1.6 | ||
| netstandard2.0 | ||
| netstandard2.1 | ||
| .NET 5+ (и .NET Core) | netcoreapp | netcoreapp1.0 |
| netcoreapp1.1 | ||
| netcoreapp2.0 | ||
| netcoreapp2.1 | ||
| netcoreapp2.2 | ||
| netcoreapp3.0 | ||
| netcoreapp3.1 | ||
| net | net5.0 | |
| net6.0 | ||
| net7.0 | ||
| net8.0 | ||
| Tizen | tizen | tizen3 |
| tizen4 | ||
| Нативный | платформы | платформы |
Устаревшие платформы
Следующие среды являются устаревшими. Пакеты, предназначенные для этих платформ, следует перевести на предлагаемые для замены.
| Устаревшая платформа | Замена |
|---|---|
| aspnet50 | netcoreapp |
| aspnetcore50 | |
| dnxcore50 | |
| dnx | |
| dnx45 | |
| dnx451 | |
| dnx452 | |
| dotnet | netstandard |
| dotnet50 | |
| dotnet51 | |
| dotnet52 | |
| dotnet53 | |
| dotnet54 | |
| dotnet55 | |
| dotnet56 | |
| winrt | победа |
Приоритет
Некоторые платформы являются родственными и совместимыми друг с другом, хотя и не полностью идентичными:
| Платформа | Можно использовать |
|---|---|
| Универсальная платформа Windows (uap) | win81 |
| wpa81 | |
| netcore50 | |
| win (Microsoft Store) | winrt |
.NET Standard
.NET Standard упрощает ссылки между двоичными платформами, что позволяет одной целевой платформе ссылаться на сочетание других платформ. (Общие сведения см. в учебнике по .NET для начинающих.)
Средство получения ближайшей платформы из набора средств NuGet имитирует логику NuGet, которая используется для выбора конкретной платформы из нескольких доступных в пакете вариантов в зависимости от платформы проекта.
В NuGet 3.3 и более ранних версий следует использовать последовательность моникеров dotnet. В версии 3.4 и более поздних должен использоваться синтаксис моникеров netstandard.
Переносимые библиотеки классов
Предупреждение
Использовать переносимые библиотеки классов не рекомендуется. Несмотря на то, что переносимые библиотеки классов поддерживаются, вместо них авторам следует реализовать поддержку netstandard. Платформа .NET Standard — это эволюция PCLs и представляет двоичную переносимость на разных платформах с помощью одного моникера, который не привязан к статической библиотеке, такой как переносимые-a+b+c моникеры.
Чтобы определить целевую платформу, которая ссылается на несколько дочерних целевых платформ, используйте ключевое слово portable в качестве префикса для списка платформ, на которые указывают ссылки. Не следует искусственно включать дополнительные платформы, для которых не выполняется компиляция, поскольку это может привести к возникновению непредвиденных побочных эффектов.
Дополнительные платформы, определяемые третьими лицами, обеспечивают совместимость с другими средами, которые доступны таким образом. Кроме того, существуют сокращенные номера профиля, которые можно использовать для ссылки на такие сочетания связанных платформ, вида Profile#. Тем не менее применять такой подход также не рекомендуется, поскольку это снижает удобочитаемость папок и файлов .nuspec.
| № профиля | Платформы | ФИО | .NET Standard |
|---|---|---|---|
| Profile2 | .NETFramework 4.0 | portable-net40+win8+sl4+wp7 | |
| Windows 8.0 | |||
| Silverlight 4.0 | |||
| WindowsPhone 7.0 | |||
| Profile3 | .NETFramework 4.0 | portable-net40+sl4 | |
| Silverlight 4.0 | |||
| Profile4 | .NETFramework 4.5 | portable-net45+sl4+win8+wp7 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 7.0 | |||
| Profile5 | .NETFramework 4.0 | portable-net40+win8 | |
| Windows 8.0 | |||
| Profile6 | .NETFramework 4.0.3 | portable-net403+win8 | |
| Windows 8.0 | |||
| Profile7 | .NETFramework 4.5 | portable-net45+win8 | netstandard1.1 |
| Windows 8.0 | |||
| Profile14 | .NETFramework 4.0 | portable-net40+sl5 | |
| Silverlight 5.0 | |||
| Profile18 | .NETFramework 4.0.3 | portable-net403+sl4 | |
| Silverlight 4.0 | |||
| Profile19 | .NETFramework 4.0.3 | portable-net403+sl5 | |
| Silverlight 5.0 | |||
| Profile23 | .NETFramework 4.5 | portable-net45+sl4 | |
| Silverlight 4.0 | |||
| Profile24 | .NETFramework 4.5 | portable-net45+sl5 | |
| Silverlight 5.0 | |||
| Profile31 | Windows 8.1 | portable-win81+wp81 | netstandard1.0 |
| WindowsPhone 8.1 (SL) | |||
| Profile32 | Windows 8.1 | portable-win81+wpa81 | netstandard1.2 |
| WindowsPhone 8.1 (UWP) | |||
| Profile36 | .NETFramework 4.0 | portable-net40+sl4+win8+wp8 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.0 (SL) | |||
| Profile37 | .NETFramework 4.0 | portable-net40+sl5+win8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| Profile41 | .NETFramework 4.0.3 | portable-net403+sl4+win8 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| Profile42 | .NETFramework 4.0.3 | portable-net403+sl5+win8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| Profile44 | .NETFramework 4.5.1 | portable-net451+win81 | netstandard1.2 |
| Windows 8.1 | |||
| Profile46 | .NETFramework 4.5 | portable-net45+sl4+win8 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| Profile47 | .NETFramework 4.5 | portable-net45+sl5+win8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| Profile49 | .NETFramework 4.5 | portable-net45+wp8 | netstandard1.0 |
| WindowsPhone 8.0 (SL) | |||
| Profile78 | .NETFramework 4.5 | portable-net45+win8+wp8 | netstandard1.0 |
| Windows 8.0 | |||
| WindowsPhone 8.0 (SL) | |||
| Profile84 | WindowsPhone 8.1 | portable-wp81+wpa81 | netstandard1.0 |
| WindowsPhone 8.1 (UWP) | |||
| Profile88 | .NETFramework 4.0 | portable-net40+sl4+win8+wp75 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 7.5 | |||
| Profile92 | .NETFramework 4.0 | portable-net40+win8+wpa81 | |
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| Profile95 | .NETFramework 4.0.3 | portable-net403+sl4+win8+wp7 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 7.0 | |||
| Profile96 | .NETFramework 4.0.3 | portable-net403+sl4+win8+wp75 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 7.5 | |||
| Profile102 | .NETFramework 4.0.3 | portable-net403+win8+wpa81 | |
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| Profile104 | .NETFramework 4.5 | portable-net45+sl4+win8+wp75 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 7.5 | |||
| Profile111 | .NETFramework 4.5 | portable-net45+win8+wpa81 | netstandard1.1 |
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| Profile136 | .NETFramework 4.0 | portable-net40+sl5+win8+wp8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.0 (SL) | |||
| Profile143 | .NETFramework 4.0.3 | portable-net403+sl4+win8+wp8 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.0 (SL) | |||
| Profile147 | .NETFramework 4.0.3 | portable-net403+sl5+win8+wp8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.0 (SL) | |||
| Profile151 | NETFramework 4.5.1 | portable-net451+win81+wpa81 | netstandard1.2 |
| Windows 8.1 | |||
| WindowsPhone 8.1 (UWP) | |||
| Profile154 | .NETFramework 4.5 | portable-net45+sl4+win8+wp8 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.0 (SL) | |||
| Profile157 | Windows 8.1 | portable-win81+wp81+wpa81 | netstandard1.0 |
| WindowsPhone 8.1 (SL) | |||
| WindowsPhone 8.1 (UWP) | |||
| Profile158 | .NETFramework 4.5 | portable-net45+sl5+win8+wp8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.0 (SL) | |||
| Profile225 | .NETFramework 4.0 | portable-net40+sl5+win8+wpa81 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| Profile240 | .NETFramework 4.0.3 | portable-net403+sl5+win8+wpa8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| Profile255 | .NETFramework 4.5 | portable-net45+sl5+win8+wpa81 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| Profile259 | .NETFramework 4.5 | portable-net45+win8+wpa81+wp8 | netstandard1.0 |
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| WindowsPhone 8.0 (SL) | |||
| Profile328 | .NETFramework 4.0 | portable-net40+sl5+win8+wpa81+wp8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| WindowsPhone 8.0 (SL) | |||
| Profile336 | .NETFramework 4.0.3 | portable-net403+sl5+win8+wpa81+wp8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| WindowsPhone 8.0 (SL) | |||
| Profile344 | .NETFramework 4.5 | portable-net45+sl5+win8+wpa81+wp8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| WindowsPhone 8.0 (SL) |
Кроме того, пакеты NuGet для Xamarin могут использовать дополнительные платформы, определенные для Xamarin. См. раздел Создание пакетов NuGet для Xamarin.
| Имя | Описание | .NET Standard |
|---|---|---|
| monoandroid | Поддержка Mono для ОС Android | netstandard1.4 |
| monotouch | Поддержка Mono для iOS | netstandard1.4 |
| monomac | Поддержка Mono для OSX | netstandard1.4 |
| xamarinios | Поддержка Xamarin для iOS | netstandard1.4 |
| xamarinmac | Поддержка Xamarin для Mac | netstandard1.4 |
| xamarinpsthree | Поддержка Xamarin для Playstation 3 | netstandard1.4 |
| xamarinpsfour | Поддержка Xamarin для Playstation 4 | netstandard1.4 |
| xamarinpsvita | Поддержка Xamarin для PS Vita | netstandard1.4 |
| xamarinwatchos | Xamarin для Watch OS | netstandard1.4 |
| xamarintvos | Xamarin для TV OS | netstandard1.4 |
| xamarinxboxthreesixty | Xamarin для XBox 360 | netstandard1.4 |
| xamarinxboxone | Xamarin для XBox One | netstandard1.4 |
Примечание.
Стивен Клири (Stephen Cleary) создал средство, которое выводит список поддерживаемых переносимых библиотек классов, который можно найти в его статье Профили платформы в .NET.