Xamarin MSAL NuGet 错误 - 检测到 Xamarin.Android.Support.Compat 的版本冲突

Xamarin MSAL NuGet error - Version conflict detected for Xamarin.Android.Support.Compat

我正在尝试将 MSAL NuGet 包 https://www.nuget.org/packages/Microsoft.Identity.Client 添加到 Xamarin 表单项目,但不断收到以下错误:

Package restore failed. Rolling back package changes for 
'MobileApp.Android'.                
Error   NU1107  Version conflict detected for 
Xamarin.Android.Support.Compat. Install/reference 
Xamarin.Android.Support.Compat 27.0.2.1 directly to project 
MobileApp.Android to resolve this issue. 
MobileApp.Android -> Xamarin.Android.Support.v7.MediaRouter 
27.0.2.1 -> Xamarin.Android.Support.v7.Palette 27.0.2.1 -> 
Xamarin.Android.Support.Compat (= 27.0.2.1) 
MobileApp.Android -> Microsoft.Identity.Client 2.2.0-preview -> 
Xamarin.Android.Support.CustomTabs 27.0.2 -> Xamarin.Android.Support.Compat 
(= 27.0.2).      

我尝试从 Visual Studio 2017 -> 工具 -> 选项 -> NuGet 包管理器中清除 NuGet 缓存,并通过删除以下文件夹的内容手动清除缓存:

%userprofile%\.nuget\packages
%localappdata%\NuGet\v3-cache
%temp%\NuGetScratch
%localappdata%\NuGet\plugins-cache

我也尝试过创建一个新的空白项目并只添加 NuGet 包,但仍然收到相同的错误。 NuGet 似乎适用于其他类型的项目。

非常感谢任何想法。

Xamarin MSAL NuGet error - Version conflict detected for Xamarin.Android.Support.Compat

这是 nuget 包版本冲突问题。

要解决此问题,您应该首先安装软件包 Xamarin.Android.Support.CustomTabs 27.0.2.1 ,然后安装包 Microsoft.Identity.Client.

出现此问题的原因:

由于您已经在您的项目中安装了包Xamarin.Android.Support.v7.MediaRouter 27.0.2.1,它具有间接依赖性Xamarin.Android.Support.Compat (= 27.0.2.1)。当你安装包Microsoft.Identity.Client到项目中时,它也有一个间接依赖Xamarin.Android.Support.Compat (= 27.0.2)。你可能会注意到版本不同,一个项目不能引用相同的引用不同的版本,这会导致版本冲突。

要解决这个问题,我们需要统一这两个不同版本的引用。检查包 Microsoft.Identity.Client 2.2.0-preview 的依赖项,这个包有一个依赖项 Xamarin.Android.Support.CustomTabs (>= 27.0.2) 并且依赖项 Xamarin.Android.Support.CustomTabs (>= 27.0.2) 也有一个依赖项 Xamarin.Android.Support.Compat (= 27.0.2)。所以要解决这个问题,我们只需要首先安装依赖项Xamarin.Android.Support.CustomTabs (>= 27.0.2.1),它的依赖项是Xamarin.Android.Support.Compat (= 27.0.2.1):

希望这对您有所帮助。