Поделиться через


Различия с WPF .NET

В этой статье описываются различия между Windows Presentation Foundation (WPF) в .NET и .NET Framework. WPF для .NET — это фреймворк с открытым кодом, форк из исходного кода WPF для .NET Framework.

Существует несколько функций .NET Framework, которые не поддерживаются .NET. Дополнительные сведения о неподдерживаемых технологиях см. в технологиях .NET Framework, недоступных в .NET.

Проекты стиля SDK

В .NET используются файлы проекта в стиле SDK. Эти файлы проекта отличаются от традиционных файлов проектов .NET Framework, управляемых Visual Studio. Чтобы перенести приложения WPF .NET Framework в .NET, необходимо преобразовать проекты. Дополнительные сведения см. в статье Обновление классического приложения WPF до .NET 7.

Ссылки на пакет NuGet

Если приложение .NET Framework перечисляет свои зависимости NuGet в файле packages.config, перейдите в формат <PackageReference>:

  1. В Visual Studio откройте окно обозревателя решений ,.
  2. В проекте WPF щелкните правой кнопкой мыши packages.config>Мигрируйте packages.config на PackageReference.

контекстное меню обозревателя решений в Visual Studio, отображающее элемент

Откроется диалоговое окно с вычисляемыми зависимостями NuGet верхнего уровня и запросом того, какие другие пакеты NuGet должны быть повышены до верхнего уровня. Выберите ОК, а файл packages.config будет удален из проекта, а элементы <PackageReference> будут добавлены в файл проекта.

Если проект использует <PackageReference>, пакеты не хранятся локально в папке пакетов, они хранятся глобально. Откройте файл проекта и удалите все элементы , которые ссылались на папку пакетов . Эти анализаторы автоматически включаются в ссылки на пакеты NuGet.

Безопасность доступа к коду

Безопасность доступа к коду (CAS) не поддерживается .NET. Все функциональные возможности, связанные с CAS, обрабатываются при предположении полного доверия. WPF для .NET удаляет код, связанный с CAS. Область общедоступного API этих типов по-прежнему существует, чтобы обеспечить успешность вызовов этих типов.

Общедоступные типы, связанные с CAS, были перемещены из сборок WPF в сборки библиотеки .NET Core. Сборки WPF имеют переадресацию типов в новое расположение перемещаемых типов.

Исходная сборка Целевая сборка Тип
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

Заметка

Чтобы свести к минимуму трение при переносе, функция хранения и получения сведений, связанных со следующими свойствами, была сохранена в типе XamlAccessLevel.

  • PrivateAccessToTypeName
  • AssemblyNameString