Из .NET удалена встроенная поддержка WinRT
Из .NET удалена встроенная поддержка использования API-интерфейсов в среде выполнения Windows (WinRT).
Представленные версии
5,0
Описание изменения
Ранее CoreCLR поддерживал использование файлов метаданных Windows (WinMD) для активации и использования типов WinRT. Начиная с версии .NET 5 поддержка прямого использования файлов WinMD в CoreCLR прекращена.
При попытке добавить ссылку на неподдерживаемую сборку отображается FileNotFoundException. При активации класса WinRT отображается PlatformNotSupportedException.
Это критическое изменение добавлено по следующим причинам:
- Таким образом, разрабатывать и совершенствовать WinRT можно отдельно от среды выполнения .NET.
- Для симметрии с системами взаимодействия, которые предоставляются для других операционных систем, таких как iOS и Android.
- Для использования преимуществ других функций .NET, таких как функции C#, обрезка кода промежуточного языка (IL) и компиляция перед выполнением (AOT).
- Для упрощения базы кода в среде выполнения .NET.
Рекомендуемое действие
Удалите ссылки на пакет Microsoft.Windows.SDK.Contracts. Вместо этого укажите версию API-интерфейсов Windows, доступ к которым требуется получать с помощью свойства
TargetFramework
проекта. Например:<TargetFramework>net5.0-windows10.0.19041.0</TargetFramework>
Если вы используете сторонний компонент среды выполнения, определенный в winmd-файле , добавьте ссылку на пакет NuGet Microsoft.Windows.CsWinRT. Сведения о том, как создать проекцию C#, см. в документации по C#/WinRT .
Дополнительные сведения см. в статье Вызов API среды выполнения Windows в классических приложениях.