如何在.NET MAUI项目中生成或添加resourcedesigner.cs文件?
MAUI迁移Xamarin斑马扫描功能:ResourceDesigner.cs问题解决办法
先搞定Xamarin Essentials的替代
MAUI已经把Xamarin Essentials的功能整合进去了,根本不用装Xamarin的NuGet包。你代码里用到Xamarin Essentials的地方,直接换成MAUI的对应API就行:
- 原来的
Xamarin.Essentials.Platform,改成Microsoft.Maui.ApplicationModel.Platform - 设备、权限这类功能,都在
Microsoft.Maui.ApplicationModel命名空间下找对应的类
别手动加旧的ResourceDesigner.cs!
Xamarin项目里的这个文件是自动生成的,MAUI项目自己也会生成(在obj目录里,叫Resources.Designer.cs)。手动加旧文件只会带进来多余的依赖,反而出问题。要是需要自定义资源,直接把资源文件丢MAUI的Resources文件夹里,IDE会自动维护设计文件。
斑马扫描Intent逻辑迁移到MAUI的正确姿势
针对斑马扫描的Intent处理,直接在MAUI的Android项目里写:
- 打开
Platforms/Android/MainActivity.cs,重写OnNewIntent方法,处理扫描返回的数据 - 用MAUI兼容的
Android.Content.Intent来替代Xamarin里的调用,举个例子:protected override void OnNewIntent(Intent intent) { base.OnNewIntent(intent); if (intent.Action == "com.zebra.scanner.SCAN") { string scanData = intent.GetStringExtra("com.symbol.datawedge.data_string"); // 把扫描结果传给UI层,比如用MessagingCenter或者弱事件 MessagingCenter.Send(this, "ScanResult", scanData); } }
资源引用排查
要是迁移后找不到资源,检查下MAUI项目的csproj文件,确保资源的Build Action设置对了:
- Android资源设为
AndroidResource - 跨平台资源设为
EmbeddedResource或者对应的MAUI资源类型
内容的提问来源于stack exchange,提问作者onassik
相关产品推荐
相关产品推荐

