Unterschiede zu WPF .NET
In diesem Artikel werden die Unterschiede in .NET und dem .NET Framework bezüglich Windows Presentation Foundation (WPF) 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.
Einige Features von .NET Framework werden jedoch von .NET nicht unterstützt. Weitere Informationen zu nicht unterstützten Technologien finden Sie unter .NET Framework-Technologien, die in .NET nicht verfügbar sind.
Projekte im SDK-Format
.NET 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 migrieren möchten. Weitere Informationen finden Sie unter Aktualisieren einer 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 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 nicht unterstützt. 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. 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
.NET Desktop feedback