다음을 통해 공유


WinRT의 기본 제공 지원이 .NET에서 제거됨

.NET에서 WinRT(Windows 런타임) API 사용을 위한 기본 제공 지원이 제거되었습니다.

도입된 버전

5.0

변경 내용 설명

이전에는 CoreCLR이 WinMD(Windows 메타데이터) 파일을 사용하여 WinRT 형식을 활성화하고 사용할 수 있었습니다. .NET 5부터 CoreCLR은 더 이상 WinMD 파일을 직접 사용할 수 없습니다.

지원되지 않는 어셈블리를 참조하려고 하면 FileNotFoundException이 발생합니다. WinRT 클래스를 활성화하는 경우 PlatformNotSupportedException이 발생합니다.

이 호환성이 손상되는 변경은 다음과 같은 이유로 적용되었습니다.

  • WinRT를 .NET 런타임과 별도로 개발하고 개선할 수 있습니다.
  • iOS, Android 등의 다른 운영 체제용으로 제공되는 interop 시스템과의 대칭을 이룰 수 있습니다.
  • C# 기능, IL(중간 언어) 트리밍 및 AOT(Ahead-Of-Time) 컴파일과 같은 다른 .NET 기능을 활용할 수 있습니다.
  • .NET 런타임 코드베이스를 간소화하기 위해서입니다.
  • Microsoft.Windows.SDK.Contracts 패키지에 대한 참조를 제거합니다. 대신 프로젝트의 TargetFramework 속성을 통해 액세스하려는 Windows API의 버전을 지정합니다. 예시:

    <TargetFramework>net5.0-windows10.0.19041.0</TargetFramework>
    
  • .winmd 파일에 정의된 타사 런타임 구성 요소를 사용하는 경우 Microsoft.Windows.CsWinRT NuGet 패키지에 대한 참조를 추가하세요. C# 프로젝션을 생성하는 방법에 대한 자세한 내용은 C#/WinRT 설명서를 참조하세요.

자세한 내용은 데스크톱 앱에서 Windows 런타임 API 호출을 참조하세요.

영향을 받는 API