繁体   English   中英

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

[英]NuGet package install fails “Package restore failed. Rolling back package changes for <xamarin.android>”

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

  1. 版本:

  2. Xamarin.Forms项目:

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

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

经过一番反复尝试后,我有了解决方案。

  1. 视觉工作室:

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

    • 设置目标Android版本:8.1 API 27
      • 这使得需要monoandroid81的软件包感到满意。
  3. 打扫房子

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

    • 右键单击<Project_name> .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)

当我尝试一个接一个地更新库时,我遇到了同样的错误。 然后,我尝试选择所有必需的库,然后单击搜索框下方的“ 更新”按钮,它可以正常工作。 我必须告诉这些库之间相互依赖。
这是一个例子:
在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM