Freigeben über


Unterschiede zu WPF .NET

In diesem Artikel werden die Unterschiede zwischen Windows Presentation Foundation (WPF) in .NET und .NET Framework beschrieben. WPF für .NET ist ein Open-Source-Framework, das aus dem Quellcode des ursprünglichen WPF-Systems für .NET Framework geforkt wurde.

Es gibt einige Features von .NET Framework, die .NET nicht unterstützt. Weitere Informationen zu nicht unterstützten Technologien finden Sie unter .NET Framework-Technologien, die auf .NETnicht verfügbar sind.

Projekte im SDK-Format

.NET verwendet Projektdateien im SDK-Stil. Diese Projektdateien unterscheiden sich von den herkömmlichen .NET Framework-Projektdateien, die von Visual Studio verwaltet werden. Um Ihre .NET Framework-WPF-Apps zu .NET zu migrieren, müssen Sie Ihre Projekte konvertieren. Weitere Informationen finden Sie unter So aktualisieren Sie eine WPF-Desktop-App auf .NET 7.

NuGet-Paketverweise

Wenn Ihre .NET Framework-App ihre NuGet-Abhängigkeiten in einer packages.config Datei auflistet, migrieren Sie zum <PackageReference> Format:

  1. Öffnen Sie in Visual Studio den Bereich Projektmappen-Explorer.
  2. Klicken Sie im WPF-Projekt mit der rechten Maustaste auf packages.config>, um packages.config in PackageReferencezu migrieren.

Das Kontextmenü des Projektmappen-Explorers in Visual Studio mit dem Element „packages.config migrieren“

Ein Dialogfeld wird angezeigt, das die berechneten NuGet-Abhängigkeiten auf oberster Ebene zeigt und fragt, welche anderen NuGet-Pakete auf diese Ebene heraufgestuft werden sollen. Wählen Sie OK aus, und die packages.config Datei wird aus dem Projekt entfernt, und <PackageReference> Elemente werden der Projektdatei hinzugefügt.

Wenn Ihr Projekt <PackageReference>verwendet, werden Pakete nicht lokal in einem Pakete Ordner gespeichert, sie werden global gespeichert. Öffnen Sie die Projektdatei, und entfernen Sie alle <Analyzer> Elemente, die auf den Ordner Pakete verwiesen haben. Diese Analysetools sind automatisch in den NuGet-Paketverweisen enthalten.

Codezugriffssicherheit

Code Access Security (CAS) wird von modernem .NET nicht unterstützt, es handelt sich um ein .NET Framework-Only-Konzept. Alle CAS-bezogenen Funktionen gelten als vollständig vertrauenswürdig. In WPF für .NET wird CAS-bezogener Code entfernt. Die öffentliche API-Oberfläche dieser Typen ist weiterhin vorhanden, um sicherzustellen, dass Aufrufe in diese Typen erfolgreich sind.

Öffentlich definierte CAS-bezogene Typen wurden aus den WPF-Assemblys und in die Core .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

Um Portierungshürden zu minimieren, wurden die Funktionen zum Speichern und Abrufen von Informationen im Zusammenhang mit den folgenden Eigenschaften im Typ XamlAccessLevel beibehalten.

  • PrivateAccessToTypeName
  • AssemblyNameString