.NET MAUI从.NET 6升级至.NET 8后遇重复文件名构建错误求助
解决.NET MAUI升级到.NET8后重复图像文件名错误的方案
核心排查与修复步骤
错误提示明确指向Resources\AppIcon\edupay.png存在重复,按以下顺序逐一排查:
1. 检查文件系统中的隐性重复
- 打开
Resources\AppIcon目录,确认是否存在同名但大小写不同的文件(如Edupay.png和edupay.png),Windows文件系统默认不区分大小写,但MAUI资源校验逻辑会严格区分。 - 排查是否有隐藏文件、版本控制残留的临时文件(如
edupay.png~),这类文件可能被MAUI资源扫描逻辑误识别。
2. 修正项目文件的资源定义
- 打开
.csproj文件,搜索edupay.png,删除重复的<MauiImage>或<MauiIcon>条目。 - 移除宽泛的资源通配符(如
<MauiImage Include="Resources\**\*.png" />),改用精确路径避免跨目录匹配同名文件,示例:<!-- 仅包含Images目录下的图片资源 --> <MauiImage Include="Resources\Images\*.png" /> <MauiImage Include="Resources\Images\*.svg" /> <MauiImage Include="Resources\Images\*.jpg" /> <!-- 单独定义AppIcon,避免与普通图片资源冲突 --> <MauiIcon Include="Resources\AppIcon\appicon.svg" ForegroundFile="Resources\AppIcon\appiconfg.svg" />
3. 彻底清理缓存并重建
- 删除项目根目录下的
bin和obj文件夹,清除旧生成缓存。 - 执行命令强制清理重建:
dotnet clean dotnet restore dotnet build
4. 检查AppIcon的特殊处理逻辑
- .NET8 MAUI对AppIcon的处理逻辑有更新,确认
Resources\AppIcon\edupay.png是否被同时标记为普通图片资源和应用图标,确保该目录下的文件仅通过<MauiIcon>定义。
5. 清理版本控制未跟踪文件
- 若使用Git,执行
git clean -fdx清理所有未跟踪的文件(执行前确认重要文件已备份),避免残留的临时文件干扰资源扫描。
内容的提问来源于stack exchange,提问作者Suhas M R
相关产品推荐
相关产品推荐

