如何修复Xamarin / NuGet错误NU1107? -“检测到Xamarin.Android.Support.Compat的版本冲突”

时间:2018-07-11 02:45:38

标签: visual-studio xamarin xamarin.forms nuget

“对于Xamarin.Android.Support.Compat检测到NU1107版本冲突。直接从项目中引用包以解决此问题。  pleaseWork.Android-> Xamarin.Android.Support.v7.MediaRouter 27.0.2-> Xamarin.Android.Support.v7.Palette 27.0.2-> Xamarin.Android.Support.Compat(= 27.0.2)  pleaseWork.Android-> pleaseWork-> Plugin.Share 7.1.1-> Xamarin.Android.Support.CustomTabs 25.4.0.2-> Xamarin.Android.Support.Compat(= 25.4.0.2)。“

当我尝试将插件安装到Xamarin项目时,我一直收到此错误。我不知道如何解决此错误,我在互联网上搜寻了所有解决方案。

I've tried to install the same plugin on multiple Xamarin projects all to no avail

5 个答案:

答案 0 :(得分:3)

  

如何修复Xamarin / NuGet错误NU1107? -“检测到Xamarin.Android.Support.Compat的版本冲突”

如果我通过引用Plugin.Share 7.1.1将软件包Xamarin.Android.Support.v7.MediaRouter 27.0.2安装到Xamarin上,则得到与您相同的错误消息。

要解决此问题,请先安装版本为 27.0.2 的依赖项Xamarin.Android.Support.CustomTabs,然后然后安装软件包{ {1}}。

解决方案的原因:

就像错误消息所示,Xamarin项目的默认软件包  是Plugin.Share 7.1.1,具有间接依赖性Xamarin.Android.Support.v7.MediaRouter 27.0.2。但是,程序包Xamarin.Android.Support.Compat (= 27.0.2)还具有间接依赖项Plugin.Share 7.1.1,它低于已安装的版本 27.0.2 。因此nuget会为您提供针对Xamarin.Android.Support.Compat 检测到的错误 NU1107版本冲突。

为了使用相同版本的软件包Xamarin.Android.Support.Compat (= 25.4.0.2),我们必须将参考软件包Xamarin.Android.Support.Compat更新为 27.0.2 ,该软件包受参考软件包{{ 1}}。

因此,解决此问题的方法是先安装Xamarin.Android.Support.CustomTabs,然后再安装软件包Plugin.Share 7.1.1

希望这会有所帮助。

答案 1 :(得分:1)

我遇到了同样的问题,但不了解如何从其他答案中解决。由于该问题已被浏览过6千次,而在2年后我将在这里进行查看,因此我将发布一个解决方案,该解决方案可能会对其他查看此页面的人有所帮助。 简而言之,在尝试安装nuget软件包时或在安装它们之后,通常会出现此错误。这是由于依赖冲突造成的,VS和nuget管理器不知道该怎么办。希望将来VS将实现一种自动解决此问题的方法,但在那之前...

以下是有关解决问题的详细说明: 该错误信息应说明您需要参考或安装的软件包。这是我收到的错误消息的摘录:

“检测到Xamarin.Android.Support.Compat的错误NU1107版本冲突。直接将Xamarin.Android.Support.Compat 28.0.0.3安装/引用到项目HPlusSports.Android即可解决此问题。”

将显示“ Xamarin.Android.Support.Compat”(或您说的要安装/引用的内容)的部分复制到剪贴板。在VS中右键单击您的解决方案文件,然后选择管理解决方案的NuGet软件包。当NuGet Manager启动时,单击浏览标签。在搜索栏中,粘贴您复制的文本,然后搜索。您需要下载的第一个结果应该是标题完全匹配的第一个结果。在安装之前,请选择与错误消息匹配的版本。就我而言,我的错误消息是“安装/引用Xamarin.Android.Support.Compat 28.0.0.3 ...”,因此我选择28.0.0.3版本进行安装。另外,选中错误消息告诉您的位置进行安装的框。就我而言,这是告诉我要在.Android中安装,所以我已安装到我的Android项目中。

当您下载/安装时,您可能会收到另一条错误消息,类似于您遇到的第一个错误消息。如果是这样,请安装错误消息告诉您的依赖项 。继续执行此操作,直到您没有收到任何其他错误消息为止;然后,您应该能够安装最初尝试安装和构建项目的软件包,而不会发生冲突。

请乔纳森·迪克(Jonathan Dick)发布此instructional video,并帮助我了解如何解决此问题。

更新:您可以通过全部更新来解决此问题。转到更新标签,选中选择所有软件包的框,然后单击更新按钮。

答案 2 :(得分:0)

如果尝试从Xamarin.Android。* v27.0.2.1更新到Xamarin.Android。* v28.0.0时遇到错误,请首先安装Xamarin.Android.Support.Custom.Tabs v20.2.2.1。然后,您应该可以升级到v28。如果它抱怨任何其他缺少的NuGet软件包,请在更新之前也安装其v27.0.2.1版本。我刚刚遇到了这个问题,所以我要发布此解决方案,以解决遇到此问题的其他人的问题。

更具体地说,在尝试从Xamarin.Forms v3.4.0.1008975更新到v3.4.0.1009999时遇到了这个问题。

答案 3 :(得分:0)

NU1107是一个NuGet错误 您可以从中学习解决方案 https://docs.microsoft.com/tr-tr/nuget/reference/errors-and-warnings/nu1107

例如

检测到“ PackageA”的版本冲突。直接安装/引用“ PackageA” v4.0.0即可解决此问题。   'PackageB'3.5.0->'PackageA'(= 3.5.0)   'PackageC'4.0.0->'PackageA'(= 4.0.0)

解决方案 使用您选择的确切版本直接(在项目文件中)安装/引用“ PackageA”。通常,选择较高的版本是正确的选择。

答案 4 :(得分:0)

我在尝试安装这两个软件包时遇到了问题。仍然找不到解决方法。有人可以照亮吗?

  

严重性代码描述项目文件行抑制   状态压制状态

     

检测到错误NU1107版本冲突   Xamarin.GooglePlayServices.Base。

     

直接安装/参考Xamarin.GooglePlayServices.Base 71.1610.0   投影XXX.Android以解决此问题。

     

XXX.Android-> Microsoft.AppCenter.Push 2.6.2->   Xamarin.Firebase.Messaging 71.1740.0-> Xamarin.Firebase.Iid 71.1710.0   -> Xamarin.Firebase.Iid.Interop 71.1601.0-> Xamarin.GooglePlayServices.Base(> = 71.1610.0)

     

XXX.Android-> Xamarin.Forms.Maps 4.3.0.991221->   Xamarin.GooglePlayServices.Maps 60.1142.1->   Xamarin.GooglePlayServices.Base(= 60.1142.1)。