NuGet包安装失败&#34;包恢复失败。回滚<xamarin.android>&#34;

时间:2018-03-26 15:49:39

标签: c# xamarin xamarin.android nuget

安装任何软件包失败并显示此错误,更新软件包也会产生此错误。清除NuGet缓存文件会导致此错误更改为&#34;访问路径mono.cecil.dll被拒绝&#34;在尝试安装&#34; Xamarin.GooglePlayServices.Ads&#34;。重新启动visual studio会导致程序包还原错误返回。

  1. 版本:

  2. Xamarin.Forms项目:

    • 目标框架:.NET 2.0
  3. Xamarin.Android项目:

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

2 个答案:

答案 0 :(得分:1)

经过一些试验和错误后我得到了解决方案。

  1. Visual Studio:

    • _1.1.0 https://pastebin.com/GkEeRqg3
      • 更新Xamarin.Forms和NuGet
    • 从“Visual Studio安装程序”修复visual studio
      • 此修复拒绝访问* .dll错误
  2. Xamarin.Android项目:

    • 设置目标Android版本:8.1 API 27
      • 这使得包需要monoandroid81快乐。
  3. 清洁房

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

    • 右键单击&lt; Project_name&gt; .android - &gt;设置为启动项目。
    • 工具 - &gt; NuGet包管理器 - &gt;包管理器控制台
    • 在控制台CLI中运行Update visual studio
  5. 为什么会这样?

    Xamarin.Android中使用的一些NuGet包使用monoandroid81。即使我的解决方案设置为使用80,安装的一些NuGet包也仅与81兼容。
    这在NuGet控制台中显示。 Update-Package -Reinstall

答案 1 :(得分:0)

当我尝试一个接一个地更新库时,我遇到了同样的错误。然后,我尝试选择所有必需的库,然后单击搜索框下方的 Update 按钮,它可以正常工作。我必须说这些库之间相互依赖。
举个例子:
enter image description here