如何修复将 WPF 应用程序更新到 .NET 8 后的错误

问题描述 投票:0回答:1

我正在尝试将 WPF 应用程序从 .NET Framework 4.7.2 更新到 .NET 8。使用 Visual Studio 中的升级选项,我已更新了所有项目并解决了我的依赖项。

我不明白为什么我会收到几个如下所示的错误:

XamlC error XFC0000: Cannot resolve type "Application".
XamlC error XFC0000: Cannot resolve type "Window".
XamlC error XFC0000: Cannot resolve type "UserControl".

谷歌搜索这会返回 .NET Maui 和 Xamarin 的结果,我认为这些都不适用于我。

如何修复这些错误? 我是不是错过了什么?

.net wpf visual-studio .net-8.0
1个回答
0
投票

将 WPF 项目从 .NET Framework 转换为 .NET Core/6/7/8/etc。可能有点棘手,因为虽然代码和 XAML 不需要更改,但项目文件和输出文件完全不同。

如果在转换时遇到任何问题(无论是手动还是自动),可以尝试以下标准故障排除步骤:

  1. 清除所有 bin/obj 目录和隐藏的 .vs 目录并重新启动 VS。
  2. 确保 Visual Studio 中安装了正确的工具。 “.NET桌面开发”工作量是必需的,并且应该足够了。
  3. 确保每个相关的 csproj 文件除了
    <UseWPF>true</UseWPF>
    之外还具有
    <TargetFramework>netX.0-windows</TargetFramework>
    属性。
  4. 如果您的 .NET Core WPF csproj 文件作为 .NET Framework 项目启动,则您或转换工具很可能错过了特定于 .NET Framework 并且不再适用于 .NET Core 的项目。 .NET Framework 项目文件更加冗长并且是针对平台定制的,因此其中可能存在过时的剩余项目,这些项目会干扰构建。
  5. 不是问题的直接部分,但值得一提 - 在分发应用程序时,不要忘记您的用户要么需要 .NET Windows Desktop 运行时,要么您需要使用“独立的”来发布您的应用程序“部署模式,以便包含所有需要的运行时程序集(不幸的是,这会增加您的发行版大小 100MB 左右)。对于 .NET Framework 来说这不是问题,因为 WPF 是该框架的标准部分,并且框架几乎总是已经安装在较新的 Windows 计算机上。
© www.soinside.com 2019 - 2024. All rights reserved.