You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启用<EnableDefaultMauiItems>True后MAUI项目出现大量XAML错误求助

问题解答

关于EnableDefaultMauiItems的作用与是否需要它

  • EnableDefaultMauiItems的核心作用是控制是否自动包含MAUI默认的项目项(比如默认资源、XAML编译规则、启动屏/图标模板等),并非专门用于控制启动屏自动生成。
  • 你从Xamarin.Forms升级的项目必须保持EnableDefaultMauiItems="False"才能正常构建,原因是升级过程中遗留的XF旧配置/文件,和MAUI默认自动引入的项产生了冲突(比如XAML编译规则重复),改设为True就会触发资源标识符重复定义的错误,这和是否构建WinUI项目无关。

解决启动屏与屏幕无法占满的问题

既然不能开启默认项自动引入,就手动配置启动屏并排查留白问题:

  1. 修正启动屏配置路径:MAUI资源路径用正斜杠分隔,移除多余空格,配置改为:
    <MauiSplashScreen Include="Resources/Splash/splash.svg" Color="#512BD4" BaseSize="128,128" />
    
  2. 确保启动屏资源合规:检查splash.svg本身没有多余空白区域,且存放路径正确。
  3. 排查屏幕留白根源:
    • 检查App.xaml的MainPage及所有页面是否有额外设置的Padding/Margin;
    • 在MauiProgram.cs中确认窗口配置未限制尺寸:
      builder.ConfigureWindow(window =>
      {
          window.Width = DeviceDisplay.MainDisplayInfo.Width;
          window.Height = DeviceDisplay.MainDisplayInfo.Height;
      });
      
    • 重新添加iOS平台的Info.plist,确保其中没有XF时代的旧窗口配置,让MAUI自动生成适配的启动屏关联设置。

关于EnableDefaultMauiItems="True"的重复错误

这个错误是因为手动引入的XAML项和MAUI默认自动引入的项重复编译导致的,你的项目依赖False才能构建,所以不要修改这个值,通过手动补充启动屏这类必要配置即可,无需依赖默认项自动引入。

内容的提问来源于stack exchange,提问作者Sean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 09:12:34