更换电脑后Xamarin.Android.Support.Compat 28.0.0.1与NetStandard2.0不兼容求助
解决Xamarin.Forms项目中Android.Xamarin.Support.Compat的NetStandard依赖错误
换了新环境遇到这类依赖问题真的挺头疼的,我帮你梳理几个大概率能解决问题的步骤,你可以逐一试试:
先清理NuGet缓存,排除缓存污染
新电脑的NuGet缓存可能有残留或者不完整的包文件,先彻底清一下:
- 打开Visual Studio,点击顶部菜单的「工具」→「NuGet包管理器」→「包管理器设置」,在弹出的窗口里找到「清除所有NuGet缓存」按钮执行
- 或者直接用命令行更彻底:打开终端,运行
dotnet nuget locals all --clear
检查项目框架版本匹配度
NetStandard相关的错误很多时候是框架版本不兼容导致的:
- 右键你的Android项目→「属性」→「应用程序」,确认目标框架版本(比如Android 12.0/13.0)和你之前旧电脑上的一致
- 再检查共享项目的NetStandard版本,Xamarin.Support系列包一般和NetStandard 2.0兼容,确保你的共享项目没选更高的版本(比如2.1)
彻底卸载重装相关NuGet包(别只装单个包)
有时候单独安装Android.Xamarin.Support.Compat会因为依赖链问题出错,得彻底清理后重新来:
- 右键解决方案→「管理解决方案的NuGet包」,卸载所有带「Xamarin.Android.Support」前缀的包,包括Compat
- 关闭Visual Studio,手动删除项目文件夹下的
obj、bin文件夹,还有根目录的packages文件夹(如果有的话) - 重新打开项目,再次通过NuGet安装你需要的Support包,建议选和旧项目一致的版本,或者最新的稳定版,安装时注意看依赖是否能正常解析
手动检查项目文件的引用配置
如果NuGet自动安装还是有问题,可能是.csproj文件里残留了错误引用:
- 右键Android项目→「编辑项目文件」
- 删掉所有关于Android.Xamarin.Support.Compat的错误
<PackageReference>或者<Reference>节点 - 手动添加正确的引用,比如:
版本号换成你需要的,保存后重新加载项目<PackageReference Include="Xamarin.Android.Support.Compat" Version="28.0.0.3" />
最后检查Visual Studio和Xamarin组件版本
新电脑的Visual Studio可能没更到最新,一些旧版本的Xamarin组件会有NetStandard兼容问题:
- 点击顶部菜单「帮助」→「检查更新」,把Visual Studio和所有Xamarin相关的组件都更到最新版
如果以上步骤都试过还是不行,可以试试创建一个全新的Xamarin.Forms项目,把旧项目的代码和资源迁移过去,有时候旧项目的配置文件在新环境下会有隐藏的冲突。
内容的提问来源于stack exchange,提问作者Daisuke Dany
相关产品推荐
相关产品推荐

