Unterschiede zu WPF .NET
In diesem Artikel werden die Unterschiede in .NET 5 (oder .NET Core 3.1) und .NET Framework bezüglich Windows Presentation Foundation (WPF) beschrieben. WPF für .NET 5 ist ein Open-Source-Framework, das aus dem Quellcode des ursprünglichen WPF-Systems für .NET Framework geforkt wurde.
Einige Features von .NET Framework werden jedoch von .NET 5 nicht unterstützt. Weitere Informationen zu nicht unterstützten Technologien finden Sie unter .NET Framework-Technologien, die in .NET 5 und .NET Core nicht verfügbar sind.
Wichtig
Die Dokumentation zum Desktopleitfaden für .NET 6 und .NET 5 (einschließlich .NET Core 3.1) wird derzeit erstellt.
Projekte im SDK-Format
.NET 5 verwendet Projektdateien im SDK-Stil. Diese Projektdateien unterscheiden sich von herkömmlichen .NET Framework-Projektdateien, die von Visual Studio verwaltet werden. Sie müssen Ihre Projekte konvertieren, wenn Sie Ihre .NET Framework-WPF-Apps zu .NET 5 migrieren möchten. Weitere Informationen finden Sie unter Migrieren von WPF-Apps zu .NET 5.
NuGet-Paketverweise
Wenn Ihre .NET Framework-App ihre NuGet-Abhängigkeiten in einer packages.config-Datei auflistet, migrieren Sie zum Format <PackageReference>
:
- Öffnen Sie in Visual Studio den Bereich Projektmappen-Explorer.
- Klicken Sie in Ihrem WPF-Projekt mit der rechten Maustaste auf packages.config>"packages.config" zu PackageReference migrieren.
Es wird ein Dialogfeld mit berechneten NuGet-Abhängigkeiten auf oberster Ebene angezeigt, und Sie werden gefragt, welche anderen NuGet-Pakete auf die oberste Ebene höher gestuft werden sollen. Klicken Sie auf OK. Die packages.config-Datei wird daraufhin aus dem Projekt entfernt, und der Projektdatei werden <PackageReference>
-Elemente hinzugefügt.
Wenn Ihr Projekt <PackageReference>
verwendet, werden Pakete nicht lokal in einem Packages-Ordner gespeichert, sondern global. Öffnen Sie die Projektdatei, und entfernen Sie alle <Analyzer>
-Elemente, die auf den Packages-Ordner verweisen. Diese Analysetools sind automatisch in den NuGet-Paketverweisen enthalten.
Codezugriffssicherheit
Die Codezugriffssicherheit (Code Access Security, CAS) wird von .NET 5 nicht unterstützt. Alle CAS-bezogenen Funktionen gelten als vollständig vertrauenswürdig. In WPF für .NET 5 wird CAS-bezogener Code entfernt. Die öffentliche API-Oberfläche dieser Typen ist weiterhin vorhanden. Damit wird sichergestellt, dass die Aufrufe dieser Typen erfolgreich sind.
Öffentlich definierte CAS-bezogene Typen wurden aus den WPF-Assemblys und in die wichtigsten .NET-Bibliotheksassemblys verschoben. Für die WPF-Assemblys ist die Typweiterleitung an den neuen Speicherort der verschobenen Typen festgelegt.
Quellassembly | Zielassembly | 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 |
Hinweis
Die Funktionalität für das Speichern und Abrufen von Informationen über die folgenden Eigenschaften wurde im XamlAccessLevel
-Typ beibehalten, um die Probleme bei der Portierung so gering wie möglich zu halten.
PrivateAccessToTypeName
AssemblyNameString