代码之家  ›  专栏  ›  技术社区  ›  Jacob Ernst

NuGet package install fails“包还原失败。正在回滚对<xamarin.android>的包更改”

  •  1
  • Jacob Ernst  · 技术社区  · 7 年前

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

    1. 版本:

    2. 沙马林。表单项目:

      • 目标框架:。净额2.0
    3. 沙马林。Android项目:

      • 最低Android版本:5.0(API级别21)
      • 目标Android版本:使用SDK版本(8.0)编译
    2 回复  |  直到 7 年前
        1
  •  3
  •   Jacob Ernst    7 年前

    经过反复试验,我终于找到了解决办法。

    1. Visual Studio:

      • Update visual studio https://pastebin.com/GkEeRqg3
        • 更新Xamarin。表单和NuGet
      • 从“visual studio安装程序”修复visual studio
        • 这修复了对*的访问被拒绝。dll错误
    2. 沙马林。Android项目:

      • 设置目标Android版本:8.1 API 27
        • 这使得需要monoandroid81的软件包非常满意。
    3. 清洁室

      • 删除文件夹C:\Users \<您的名称(&U);\AppData\Local\Xamarin`
        • 不确定这是否必要,但我正在记录我所做的任何事情,以便其他人可以复制解决方案。
    4. 正在修复NuGet

      • 右键单击(<);项目名称>。android-->设置为启动项目。
      • 工具-->NuGet包管理器-->包管理器控制台
      • 在console CLI中运行 Update-Package -Reinstall

    为什么会这样?

    Xamarin中使用的一些NuGet包。Android使用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
  •  0
  •   Janaco    5 年前

    当我试图一个接一个地更新库时,我遇到了同样的错误。然后我尝试选择所有必需的库并单击 使现代化 按钮bellow的搜索框,它的工作。我不得不说,这些库之间存在依赖关系。
    下面是一个示例:
    enter image description here