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

添加WinUI 3类库引用至WinUI 3空白应用时出现NETSDK1022错误

解决WinUI3应用引用类库后出现NETSDK1022重复Page项错误

问题分析

你遇到的NETSDK1022错误,是因为WinUI3的SDK默认会自动包含项目目录下所有Page类型文件,添加类库引用后,类库中的XAML文件(或主应用显式声明的文件)与默认规则包含的文件发生重复。而你之前设置的EnableDefaultCompileItems属性对WinUI3的Page项无效,错误提示里明确指向的是EnableDefaultPageItems。

解决方案

1. 修正项目属性并显式声明Page文件

打开WinUI3空白应用的.csproj文件,做以下修改:

  • 添加EnableDefaultPageItems属性并设为false,关闭默认的Page项自动包含规则
  • 手动显式添加主应用需要编译的XAML文件

示例配置:

<Project Sdk="Microsoft.NET.Sdk">
  <!-- 保留其他现有配置 -->
  <PropertyGroup>
    <!-- 替换错误的EnableDefaultCompileItems,改用此属性 -->
    <EnableDefaultPageItems>false</EnableDefaultPageItems>
  </PropertyGroup>

  <ItemGroup>
    <!-- 显式声明主应用的Page文件 -->
    <Page Include="MainWindow.xaml" />
    <!-- 若有其他XAML页面,需手动添加 -->
  </ItemGroup>
  <!-- 保留其他现有ItemGroup -->
</Project>

2. 消除类库与应用的文件命名冲突

如果WinUI3类库中存在和主应用同名的XAML文件(比如MainWindow.xaml),直接重命名类库中的文件是更彻底的解决方式,从根源上避免重复项问题。

3. 清理缓存并重建项目

修改项目文件后,执行以下操作确保配置生效:

  • 清理NuGet缓存:在终端运行 dotnet nuget locals all --clear
  • 在Visual Studio中依次执行Build -> Clean Solution,再Build -> Rebuild Solution

注意事项

WinUI3的项目编译规则和WPF/WinForms存在差异,它对默认项的包含逻辑更严格,跨项目引用时需要明确管控编译文件列表,不能直接套用WPF的配置方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 15:33:16