NuGet 包安装失败“包还原失败。回滚 <xamarin.android> 的包更改”

Posted

技术标签:

【中文标题】NuGet 包安装失败“包还原失败。回滚 <xamarin.android> 的包更改”【英文标题】:NuGet package install fails "Package restore failed. Rolling back package changes for <xamarin.android>" 【发布时间】:2018-09-04 20:12:27 【问题描述】:

安装任何软件包都会失败并出现此错误,更新软件包也会产生此错误。尝试安装“Xamarin.GooglePlayServices.Ads”时,清除 NuGet 缓存文件会导致此错误更改为“拒绝访问 mono.cecil.dll 路径”。重新启动 Visual Studio 会导致包还原错误再次出现。

    版本:

    操作系统:赢 10 Visual Studio Information:https://pastebin.com/vnuyZMWk

    Xamarin.Forms 项目:

    目标框架:.NET 2.0

    Xamarin.android 项目:

    最低 Android 版本:5.0(API 级别 21) 目标 Android 版本:使用编译 SDK 版本 (8.0)

【问题讨论】:

你能检查一下你是不是mono.android包,如果你做了同样的路径是什么 xamarin.Forms 包已安装,它具有 MonoAndroid 的依赖项。我相信它已安装,但我在 Visual Studio 的 NuGet 包管理器中找不到安装路径。 好吧,我问你mono android包的路径也是出于同样的原因,因为你安装的包有8.1依赖,其次,路径有dll的版本 【参考方案1】:

经过反复试验,我找到了解决方案。

    Visual Studio:

    Update visual studiohttps://pastebin.com/GkEeRqg3 更新 Xamarin.Forms 和 NuGet 从“Visual Studio 安装程序”修复 Visual Studio 这修复了拒绝访问 *.dll 错误

    Xamarin.Android 项目:

    设置目标 Android 版本:8.1 API 27 这使得需要 monoandroid81 的包很满意。

    打扫房间

    删除文件夹 C:\Users\\AppData\Local\Xamarin` 不确定这是否有必要,但我正在记录我所做的任何事情,以便其他人可以复制解决方案。

    修复 NuGet

    右键.android -->设置为启动项目。 工具 --> NuGet 包管理器 --> 包管理器控制台 在控制台 CLI 中运行 Update-Package -Reinstall

为什么会这样?

Xamarin.Android 中使用的一些 NuGet 包以某种方式使用了 monoandroid81。尽管我的解决方案设置为使用 80,但安装的一些 NuGet 包仅与 81 兼容。 这已在 NuGet 控制台中显示。 Package Xamarin.Android.Support.v7.MediaRouter 27.0.2 is not compatible with monoandroid80 (MonoAndroid,Version=v8.0). Package Xamarin.Android.Support.v7.MediaRouter 27.0.2 supports: monoandroid81 (MonoAndroid,Version=v8.1)

【讨论】:

【参考方案2】:

我在尝试一个一个更新库时遇到了同样的错误。然后我尝试选择所有需要的库并单击搜索框下方的 Update 按钮,它就可以工作了。我不得不说这些库彼此之间存在依赖关系。 这是一个例子:

【讨论】:

以上是关于NuGet 包安装失败“包还原失败。回滚 <xamarin.android> 的包更改”的主要内容,如果未能解决你的问题,请参考以下文章

针对使用nuget命令,因下载超时安装失败的程序包,可以离线方式安装

带有 NuGet 上游源的 Azure DevOps Artifacts 源的安装包失败

Nuget包安装错误 - 无效的URI:无法解析权限/主机

[Visual Studio] 记一次排错:打不开 Nuget 包管理器里的安装package页面,无法 安装 / 恢复 包

如何解决 Visual Studio 中的“NuGet 包还原失败”?

Team Foundation Service 构建在 NuGet 包还原时失败