.NET MAUI从.NET 7升级到.NET 8遭遇资源冲突构建失败
解决MAUI Windows构建时PRI资源冲突(WindowRootViewStyle.xbf重复)
统一NuGet包版本
确保项目里所有Microsoft.Maui相关的NuGet包(比如Microsoft.Maui.Controls、Microsoft.Maui.Core)版本完全一致。右键解决方案→管理NuGet程序包,把所有相关包的版本调成一样的,不同版本很容易带出重复资源。排查自定义样式冲突
检查项目里有没有自定义过同名的WindowRootViewStyle资源,或者在Windows平台的资源字典里重复引入了官方样式文件。要是有重复定义,要么重命名自定义样式,要么删掉重复的引入。在csproj里排除重复资源
打开项目的csproj文件,添加下面的配置,把冲突的资源排除掉:<ItemGroup> <PriExclude Include="Files/Microsoft.Maui/Platform/Windows/Styles/WindowRootViewStyle.xbf" /> </ItemGroup>保存后重新清理、生成解决方案,如果还有其他重复资源,照着格式加更多PriExclude条目就行。
清理全局缓存
除了删项目的bin/obj文件夹,还要清MAUI的全局缓存:- 删掉
%USERPROFILE%\.nuget\packages\microsoft.maui.*路径下对应版本的缓存文件夹 - 运行命令
dotnet nuget locals all --clear清空所有NuGet本地缓存
- 删掉
检查Windows平台配置
确认项目的Windows平台配置里,有没有重复引入资源的设置,比如多次配置<MauiWinUIExcludeAssets>这类节点,导致资源被重复打包。
内容的提问来源于stack exchange,提问作者Steven Frank
相关产品推荐
相关产品推荐

