MAUI iOS项目引用升级至Microsoft.iOS的绑定项目报错需引用Xamarin.iOS
解决iOS MAUI引用Microsoft.iOS绑定项目时的Xamarin.iOS依赖错误
可行解决方案:
确认绑定项目的目标框架配置
打开绑定项目的.csproj文件,确保目标框架设置为对应版本的netios(比如netios17.0,需和你的MAUI项目iOS目标版本匹配),而非遗留的Xamarin.iOS目标。示例配置:<PropertyGroup> <TargetFramework>netios17.0</TargetFramework> <Nullable>enable</Nullable> <ImplicitUsings>enable</ImplicitUsings> <IsBindingProject>true</IsBindingProject> </PropertyGroup>清理绑定项目的Xamarin.iOS残留引用
- 在VS里右键绑定项目→管理NuGet程序包,卸载所有Xamarin相关包,安装对应版本的
Microsoft.iOS包。 - 手动编辑
.csproj文件,删除所有类似<PackageReference Include="Xamarin.iOS" ... />的行,确保只保留Microsoft.iOS的引用。
- 在VS里右键绑定项目→管理NuGet程序包,卸载所有Xamarin相关包,安装对应版本的
对齐MAUI项目与绑定项目的目标框架
检查MAUI项目的.csproj,确保iOS目标框架版本和绑定项目完全一致,同时移除MAUI项目中任何多余的Xamarin.iOS引用。彻底清理并重建解决方案
- 删除MAUI项目和绑定项目下的
bin、obj文件夹。 - 在VS中执行「清理解决方案」→「重建解决方案」。
- 必要时关闭VS,删除项目根目录的
.vs隐藏文件夹,重新打开项目再尝试构建。
- 删除MAUI项目和绑定项目下的
检查绑定代码的命名空间兼容性
全局搜索绑定项目中的Xamarin.iOS关键字,将所有旧命名空间(比如Xamarin.iOS.Foundation.NSObject)替换为Microsoft.iOS对应的命名空间(比如Microsoft.iOS.Foundation.NSObject)。验证绑定DLL的依赖项
用ILSpy之类的工具查看绑定项目生成的DLL,确认其依赖项里只有Microsoft.iOS,没有Xamarin.iOS。如果仍有Xamarin.iOS依赖,说明绑定过程中可能引用了旧的原生库或模板,需要重新生成绑定项目。
内容的提问来源于stack exchange,提问作者Naveen
相关产品推荐
相关产品推荐

