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

拆分UWP项目后启动报错:找不到DefaultListViewItemStyle资源求解决

修复UWP拆分项目中DefaultListViewItemStyle找不到的问题

针对你拆分UWP项目后遇到的资源加载异常,按以下步骤排查修复:

1. 确保类库项目的WinUI资源配置正确

类库项目(包含原App.xaml)必须正确引入WinUI 2资源:

  • 确认已安装Microsoft.UI.Xaml NuGet包,项目文件(.csproj)中包含:
    <PropertyGroup>
      <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
      <UseWinUI>true</UseWinUI>
    </PropertyGroup>
    
  • 原App.xaml中<muxc:XamlControlsResources />必须放在Application.Resources的最顶层,保证资源能被子类继承:
    <Application.Resources>
        <muxc:XamlControlsResources xmlns:muxc="using:Microsoft.UI.Xaml.Controls" />
        <!-- 自定义资源放在WinUI资源之后 -->
    </Application.Resources>
    

2. 简化DummyApp的XAML与代码

不要在DummyApp中添加任何资源定义,避免覆盖上层资源:

  • DummyApp.xaml保持极简,直接继承类库中的BaseApp:
    <local:BaseApp xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                   xmlns:local="using:你的类库命名空间">
    </local:BaseApp>
    
  • DummyApp.xaml.cs中必须调用InitializeComponent(),构造函数只处理启动逻辑:
    public sealed partial class DummyApp : BaseApp
    {
        public DummyApp()
        {
            InitializeComponent();
            // 这里只加启动相关的动态代码,不要修改资源逻辑
        }
    }
    

3. 修复页面的资源继承问题

如果MainPage在类库中,检查其XAML是否阻断了资源继承:

  • 移除页面中多余的空Page.Resources块,否则会阻断Application级资源的继承;
  • 如果需要页面自定义资源,通过MergedDictionaries显式引用类库资源:
    <Page.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="ms-appx:///你的类库命名空间/Resources.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <!-- 页面自定义资源 -->
        </ResourceDictionary>
    </Page.Resources>
    

4. 彻底清理重建解决方案

UWP资源加载容易受缓存影响,执行以下操作:

  • 删除类库和启动项目的bin/obj文件夹;
  • 清理NuGet缓存;
  • 先重新生成类库项目,再生成启动项目。

额外排查点

  • 确认类库项目的输出类型是Windows Runtime Component,确保资源能被启动项目访问;
  • 如果问题仍存在,在类库App.xaml中显式引用WinUI的主题资源字典兜底:
    <muxc:XamlControlsResources>
        <muxc:XamlControlsResources.MergedDictionaries>
            <ResourceDictionary Source="ms-appx:///Microsoft.UI.Xaml/Themes/themeresources.xaml" />
        </muxc:XamlControlsResources.MergedDictionaries>
    </muxc:XamlControlsResources>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 22:05:10