从Xamarin Forms迁移到.NET MAUI遇资源标识符重复错误求助
解决.NET MAUI迁移中“Resource identifier xxx已在程序集中使用”错误的方案
常规排查修复步骤
- 清理重建项目
执行Clean Solution后再Rebuild Solution,迁移后残留的Xamarin编译缓存是这类错误的常见诱因,清理后可消除大部分重复资源标识问题。 - 检查XAML页面类名唯一性
确认所有XAML页面的x:Class属性对应的命名空间和类名完全唯一,避免出现两个页面共用同一类名的情况。 - 排查项目文件重复引用
打开项目的.csproj文件,检查是否存在重复的<Compile>或<EmbeddedResource>条目指向同一XAML/代码文件,重复引用会直接导致资源标识冲突。 - 手动清除编译缓存
删除项目目录下的bin和obj文件夹,再重新编译,彻底清除旧的生成文件残留。 - 验证资源字典无重复定义
检查全局或页面级资源字典,确认没有重复定义相同键名的资源,迁移时可能遗留的Xamarin旧资源项容易引发此类问题。 - 确保命名空间一致性
保证XAML页面的xmlns命名空间与后台代码的namespace完全匹配,不一致会导致编译器生成重复的资源标识。
特殊场景处理
若常规步骤无效,可尝试:
- 暂时将冲突页面移出项目,编译通过后再逐个添加,定位到具体引发冲突的页面,检查其内部的自定义控件、绑定资源是否存在隐藏的重复定义。
- 更新MAUI SDK至最新稳定版本,旧版本SDK可能存在迁移相关的编译器bug,升级后可解决这类问题。
内容的提问来源于stack exchange,提问作者c0dem0nkey
相关产品推荐
相关产品推荐

