Visual Studio 2017中Xamarin.Forms项目NuGet包还原失败求助
解决Visual Studio 2017中Xamarin.Forms NuGet更新失败的方案
我之前在维护Xamarin项目时也碰到过一模一样的NuGet更新回滚问题,给你几个经过验证的解决步骤,按顺序试应该能搞定:
1. 先清理NuGet本地缓存
缓存损坏是这类问题的头号元凶,先清掉试试:
- 打开Visual Studio 2017,点击顶部菜单栏的Tools → Options
- 在弹出的窗口里找到NuGet Package Manager → Package Sources
- 点击右侧的**Clear All NuGet Cache(s)**按钮,等清理完成后重启VS
- 再回到NuGet更新页面,尝试重新更新
2. 手动彻底清理项目中的包残留文件
自动更新失败后,项目里可能留下损坏的包文件或配置,手动清理更彻底:
- 先关闭Visual Studio,找到你的Xamarin.Forms项目文件夹
- 删除每个项目目录下的
packages文件夹(如果存在的话) - 打开Android项目的
XFDemo.Android.csproj文件(用记事本或VS的代码编辑器都可以),先备份原文件后,暂时注释或删除所有<PackageReference>格式的NuGet引用行 - 删掉解决方案根目录下的
packages.config和nuget.config文件 - 重新打开解决方案,右键点击项目选择Manage NuGet Packages,重新安装对应版本的Xamarin.Forms及其依赖包
3. 检查Android项目的目标框架版本
Xamarin.Forms的新版本对Android目标框架有要求,版本不匹配会导致更新失败:
- 右键点击
XFDemo.Android项目 → Properties - 在Application标签页里,查看Compile using Android version (Target Framework)
- 如果你要更新的Xamarin.Forms是4.x及以上版本,通常需要Android 8.0(API Level 26)或更高版本,要是当前版本过低,选一个符合要求的框架后保存,再尝试更新
4. 修复Visual Studio 2017的安装
VS的组件损坏也可能导致NuGet功能异常,修复一下试试:
- 打开Windows控制面板 → 程序和功能
- 找到Microsoft Visual Studio 2017,右键选择Change
- 在VS安装器里点击Repair按钮,等待修复完成后重启电脑
- 再回到项目里操作NuGet更新
5. 尝试逐个更新项目而非批量全选
批量更新容易触发依赖冲突,试试单独更新:
- 打开Manage NuGet Packages for Solution的更新标签页
- 先只选中
XFDemo.Android项目,点击更新 - 如果成功,再依次更新其他项目(比如PCL/NetStandard项目)
- 如果还是失败,一定要看详细错误日志:点击错误提示里的View Log链接,找到具体的错误原因(比如某个依赖包无法下载、版本冲突),针对性解决
内容的提问来源于stack exchange,提问作者Noor Allan
相关产品推荐
相关产品推荐

