删除bin/obj文件夹后Xamarin.Forms项目编译报错,如何修复?
解决Xamarin.Forms编译错误的步骤
1. 修复AppResources.resx的编译配置(核心问题)
- 找到MyApp项目中的
AppResources.resx文件,右键→属性:- 确认生成操作设置为
Embedded Resource - 确认自定义工具设置为
ResXFileCodeGenerator - 确认自定义工具命名空间与项目默认命名空间完全一致(比如项目命名空间是
MyApp,这里就填MyApp)
- 确认生成操作设置为
- 单独编译MyApp共享项目:右键MyApp项目→生成,确保这个项目能成功编译出
bin/Debug/netstandard2.0/MyApp.dll和obj/Debug/netstandard2.0/ref/MyApp.dll文件
2. 修正项目依赖与编译顺序
- 右键解决方案→项目依赖:
- 确认MyApp.Android和MyApp.iOS项目都勾选依赖MyApp共享项目
- 切换到项目构建顺序标签,确保MyApp项目排在Android/iOS项目之前
3. 强制清理并重新生成解决方案
- 右键解决方案→清理解决方案,彻底清除残留的编译文件
- 右键解决方案→重新生成解决方案,注意是「重新生成」而非「生成」,会强制重新编译所有项目
4. 检查XAML中的AppResources引用
- 打开MainPage.xaml,检查顶部的命名空间声明:
- 确保存在对应AppResources的命名空间,比如
xmlns:res="clr-namespace:MyApp"(命名空间要和AppResources的实际命名空间一致) - 确认XAML中引用AppResources的语法正确,比如
{x:Static res:AppResources.YourResourceKey}
- 确保存在对应AppResources的命名空间,比如
5. 其他排查手段
- 重启Visual Studio,清除IDE缓存后再尝试编译
- 检查Visual Studio的Xamarin组件是否完整:打开「工具→获取工具和功能」,确认Xamarin.Forms相关组件已正确安装
内容的提问来源于stack exchange,提问作者Costas
相关产品推荐
相关产品推荐

