You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Xamarin Forms + .NET Standard 2.0项目中集成地图?

解决Xamarin.Forms集成地图时的版本兼容问题

这种版本不匹配的问题在Xamarin生态里挺常见的,核心原因就是Xamarin.Forms.Maps必须和Xamarin.Forms的主版本完全一致——你用的Forms是2.5.1.444934,但安装Maps时可能默认拉取的版本和这个不兼容,所以NuGet才会自动降级Forms来匹配Maps版本。给你几个可行的解决思路:

1. 手动安装对应版本的Maps

打开Visual Studio的NuGet包管理器(右键项目→管理NuGet程序包),搜索Xamarin.Forms.Maps:

  • 不要直接点击「安装」,先切换到「版本」标签页
  • 在版本列表里找到和你当前Xamarin.Forms完全相同的版本号(也就是2.5.1.444934)
  • 选择这个版本后再点击安装,这样就不会触发Forms的降级了

2. 检查并更新NuGet源

有时候本地NuGet缓存或者源的问题,会导致找不到对应版本的Maps:

  • 打开NuGet包管理器设置(工具→选项→NuGet包管理器→程序包源)
  • 确保已经添加了官方NuGet源,并且没有被禁用
  • 清理NuGet缓存(工具→选项→NuGet包管理器→常规→清除所有NuGet缓存),然后重新搜索安装

3. 临时降级Forms到匹配版本(迫不得已时)

如果确实找不到对应2.5.1.444934版本的Maps(比如当时这个版本的Maps还未发布),那只能接受降级:

  • 先把Xamarin.Forms手动降级到2.5.0.122203
  • 再安装同版本(2.5.0.122203)的Xamarin.Forms.Maps
  • 后续可以关注NuGet上Maps的版本更新,等有了对应2.5.1版本的Maps后,再同步升级Forms和Maps

额外注意事项

安装完Maps后,别忘给各个平台做基础配置:

  • Android:在AndroidManifest.xml里添加位置权限、Google Maps API密钥,还要确保引用了Xamarin.GooglePlayServices.Maps包
  • iOS:在Info.plist里添加位置权限描述(比如NSLocationWhenInUseUsageDescription),并启用Maps相关功能
  • UWP:在Package.appxmanifest里配置位置权限和地图功能

内容的提问来源于stack exchange,提问作者D.Mart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:19:00