本文介绍了NuGet 包安装失败"包还原失败.回滚 <xamarin.android>" 的包更改的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Installing any package fails with this error, updating packages also creates this error. Clearing the NuGet cache files causes this error to change to "access to the path mono.cecil.dll is denied" when trying to install "Xamarin.GooglePlayServices.Ads". Restarting visual studio causes the package restore error to come back.

  1. 版本:

Xamarin.Forms 项目:

Xamarin.Forms Project:

  • 目标框架:.NET 2.0

Xamarin.Android 项目:

Xamarin.Android project:

  • 最低 Android 版本:5.0(API 级别 21)
  • 目标 Android 版本:使用 Compile Using SDK 版本 (8.0)

推荐答案

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

  1. Visual Studio:

  1. Visual Studio:

  • 更新视觉工作室 https://pastebin.com/GkEeRqg3
    • 更新 Xamarin.Forms 和 NuGet
    • 这修复了拒绝访问 *.dll 错误

    Xamarin.Android 项目:

    Xamarin.Android project:

    • 设置目标 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 控制台中.包 Xamarin.Android.Support.v7.MediaRouter 27.0.2 与 monoandroid80 (MonoAndroid,Version=v8.0) 不兼容.包 Xamarin.Android.Support.v7.MediaRouter 27.0.2 支持:monoandroid81 (MonoAndroid,Version=v8.1)

        这篇关于NuGet 包安装失败"包还原失败.回滚 <xamarin.android>" 的包更改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-05 21:02