Różnice w WPF .NET
W tym artykule opisano różnice między programem Windows Presentation Foundation (WPF) na platformie .NET i programie .NET Framework. WPF for .NET to platforma typu open source rozwidlenia z oryginalnego kodu źródłowego WPF dla platformy .NET Framework.
Istnieje kilka funkcji programu .NET Framework, których platforma .NET nie obsługuje. Aby uzyskać więcej informacji na temat nieobsługiwanych technologii, zobacz technologie platformy .NET Framework niedostępne na platformie .NET.
Projekty w stylu zestawu SDK
Platforma .NET używa plików projektu w stylu zestawu SDK. Te pliki projektu różnią się od tradycyjnych plików projektów .NET Framework zarządzanych przez program Visual Studio. Aby przeprowadzić migrację aplikacji .NET Framework WPF do platformy .NET, musisz przekonwertować projekty. Aby uzyskać więcej informacji, zobacz Jak uaktualnić aplikację klasyczną WPF do platformy .NET 7.
Odwołania do pakietów NuGet
Jeśli aplikacja .NET Framework wyświetla jej zależności NuGet w pliku packages.config, przeprowadź migrację do formatu <PackageReference>
:
- W programie Visual Studio otwórz okienko Eksplorator rozwiązań.
- W projekcie WPF kliknij prawym przyciskiem myszy pozycję packages.config>Migrate packages.config to PackageReference.
Zostanie wyświetlone okno dialogowe przedstawiające obliczone zależności NuGet najwyższego poziomu i z pytaniem, które inne pakiety NuGet powinny zostać podniesione do najwyższego poziomu. Wybierz pozycję OK, a plik packages.config zostanie usunięty z projektu, a elementy <PackageReference>
zostaną dodane do pliku projektu.
Gdy projekt używa <PackageReference>
, pakiety nie są przechowywane lokalnie w folderze Packages, są one przechowywane globalnie. Otwórz plik projektu i usuń wszystkie elementy <Analyzer>
, które odwoływały się do folderu pakietów . Te analizatory są automatycznie dołączane do referencji pakietów NuGet.
Bezpieczeństwo dostępu do kodu
Zabezpieczenia dostępu kodu (CAS) nie są obsługiwane przez platformę .NET. Wszystkie funkcje związane z usługą CAS są traktowane zgodnie z założeniem pełnego zaufania. WPF dla platformy .NET usuwa kod związany z protokołem CAS. Publiczny obszar interfejsu API tych typów nadal istnieje, aby zapewnić, że wywołania do tych typów kończą się powodzeniem.
Publicznie zdefiniowane typy związane z serwerem CAS zostały przeniesione z zestawów WPF i do podstawowych zestawów bibliotek .NET. Zestawy WPF mają przekierowanie typów ustawione do nowej lokalizacji przeniesionych typów.
Zestaw źródłowy | Zestaw docelowy | Typ |
---|---|---|
WindowsBase.dll | System.Security.Permissions.dll | MediaPermission MediaPermissionAttribute MediaPermissionAudio MediaPermissionImage MediaPermissionVideo WebBrowserPermission WebBrowserPermissionAttribute WebBrowserPermissionLevel |
System.Xaml.dll | System.Security.Permissions.dll | XamlLoadPermission |
System.Xaml.dll | System.Windows.Extension.dll | XamlAccessLevel |
Notatka
Aby zminimalizować trudności związane z portowaniem, pozostawiono funkcję przechowywania i pobierania informacji dla poniższych właściwości w typie XamlAccessLevel
.
PrivateAccessToTypeName
AssemblyNameString
.NET Desktop feedback