Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Встроенная поддержка использования API среды выполнения Windows (WinRT) в .NET удаляется.
Представленная версия
5,0
Описание изменения
Ранее CoreCLR мог использовать файлы метаданных Windows (WinMD) для активации и использования типов WinRT. Начиная с .NET 5 CoreCLR больше не может использовать файлы WinMD напрямую.
При попытке ссылаться на неподдерживаемую сборку, вы получите 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" в классических приложениях.