Wbudowana obsługa winRT jest usuwana z platformy .NET

Wbudowana obsługa użycia interfejsów API środowiska uruchomieniowego systemu Windows (WinRT) na platformie .NET jest usuwana.

Wprowadzona wersja

5,0

Opis zmiany

Wcześniej coreCLR może używać plików metadanych systemu Windows (WinMD) do aktywnego działania i korzystania z typów WinRT. Począwszy od platformy .NET 5, CoreCLR nie może już bezpośrednio korzystać z plików WinMD.

Jeśli spróbujesz odwołać się do nieobsługiwanego zestawu, otrzymasz element FileNotFoundException. Jeśli aktywujesz klasę WinRT, otrzymasz element PlatformNotSupportedException.

Ta zmiana powodująca niezgodność została wprowadzona z następujących powodów:

  • Dlatego winRT można opracowywać i ulepszać oddzielnie od środowiska uruchomieniowego platformy .NET.
  • W przypadku symetrii z systemami międzyoperacyjnymi udostępnianymi dla innych systemów operacyjnych, takich jak iOS i Android.
  • Aby korzystać z innych funkcji platformy .NET, takich jak funkcje języka C#, przycinanie języka pośredniego (IL) i kompilacja przed czasem (AOT).
  • Aby uprościć bazę kodu środowiska uruchomieniowego platformy .NET.
  • Usuń odwołania do pakietu Microsoft.Windows.SDK.Contracts. Zamiast tego określ wersję interfejsów API systemu Windows, do których chcesz uzyskać dostęp za pośrednictwem TargetFramework właściwości projektu. Na przykład:

    <TargetFramework>net5.0-windows10.0.19041.0</TargetFramework>
    
  • Jeśli używasz składnika środowiska uruchomieniowego innej firmy zdefiniowanego w pliku winmd , dodaj odwołanie do pakietu NuGet Microsoft.Windows.CsWinRT. Aby uzyskać informacje na temat generowania projekcji języka C#, zobacz dokumentację języka C#/WinRT .

Aby uzyskać więcej informacji, zobacz Wywoływanie interfejsów API środowisko wykonawcze systemu Windows w aplikacjach klasycznych.

Dotyczy interfejsów API