You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Xamarin升级到MAUI时遭遇NuGet还原循环错误求助

解决Xamarin升级MAUI时NuGet依赖冲突问题

问题背景

核心API从netstandard2.0升级到.NET8后,遭遇NuGet包版本冲突:Xamarin.Android.Support.Compat存在版本不一致问题,同时CardsView、Plugin.Permissions、Rg.Plugins.Popup等旧第三方插件依赖过时的Xamarin.Forms及支持库版本,导致包恢复失败。

错误日志

添加包时的报错:

Restoring packages for C:\Developer\*\*\*\*.csproj...
  GET https://api.nuget.org/v3-flatcontainer/xamarin.forms/index.json
  OK https://api.nuget.org/v3-flatcontainer/xamarin.forms/index.json 205ms
  CACHE https://api.nuget.org/v3-vulnerabilities/index.json
  CACHE https://api.nuget.org/v3-vulnerabilities/2024.10.10.23.29.13/vulnerability.base.json
  CACHE https://api.nuget.org/v3-vulnerabilities/2024.10.10.23.29.13/2024.10.11.11.29.14/vulnerability.update.json
NU1603: CardsView 2.4.8 depends on Xamarin.Forms (>= 3.0.0) but Xamarin.Forms 3.0.0 was not found. An approximate best match of Xamarin.Forms 3.0.0.446417 was resolved.
NU1107: Version conflict detected for Xamarin.Android.Support.Compat. Install/reference Xamarin.Android.Support.Compat 28.0.0.1 directly to project VanMonster.AppraisalCore to resolve this issue. 
 *.* -> Plugin.Permissions 5.0.0-beta -> Xamarin.Android.Support.Compat (>= 28.0.0.1) 
 *.*-> CardsView 2.4.8 -> Xamarin.Forms 3.0.0.446417 -> Xamarin.Android.Support.v4 25.4.0.2 -> Xamarin.Android.Support.Compat (= 25.4.0.2).
Package restore failed. Rolling back package changes for '*.*'.

删除包时的报错:

Restoring packages for C:\Developer\*\*\*\*.csproj...
  CACHE https://api.nuget.org/v3/vulnerabilities/index.json
  CACHE https://api.nuget.org/v3-vulnerabilities/2024.10.10.23.29.13/vulnerability.base.json
  CACHE https://api.nuget.org/v3-vulnerabilities/2024.10.10.23.29.13/2024.10.11.11.29.14/vulnerability.update.json
NU1107: Version conflict detected for Xamarin.Android.Support.Compat. Install/reference Xamarin.Android.Support.Compat 28.0.0.1 directly to project VanMonster.AppraisalCore to resolve this issue. 
 VanMonster.AppraisalCore -> Plugin.Permissions 5.0.0-beta -> Xamarin.Android.Support.Compat (>= 28.0.0.1) 
 VanMonster.AppraisalCore -> Rg.Plugins.Popup 1.2.0.223 -> Xamarin.Forms 2.5.0.121934 -> Xamarin.Android.Support.v4 25.4.0.2 -> Xamarin.Android.Support.Compat (= 25.4.0.2).
Generating MSBuild file C:\Developer\*\*\*\*.csproj.nuget.g.props.
Generating MSBuild file C:\Developer\*\*\*\obj\*.csproj.nuget.g.targets.
Writing assets file to disk. Path: C:\Developer\*\*\*\obj\project.assets.json
Executing nuget actions took 113 ms
Time Elapsed: 00:00:00.5898366
========== Finished ==========

Failed to restore C:\*\*\*\*.csproj (in 2.77 sec).
NuGet package restore failed. Please see Error List window for detailed warnings and errors.
Time Elapsed: 00:00:02.7920800

解决方案

1. 清理过时Xamarin依赖

移除所有与Xamarin相关的包,包括旧第三方插件:

dotnet remove package Xamarin.Forms
dotnet remove package CardsView
dotnet remove package Rg.Plugins.Popup
dotnet remove package Plugin.Permissions
dotnet remove package Xamarin.Android.Support.Compat
# 移除其他Xamarin.Android.Support开头的包

2. 升级核心API并替换为MAUI兼容包

  • 确认项目文件(.csproj)的目标框架已更新:
    <TargetFramework>net8.0</TargetFramework>
    
  • 添加替代包:
    • Newtonsoft.Json:直接安装最新稳定版
    • 权限管理:替换Plugin.Permissions为MAUI原生权限API,安装Microsoft.Maui.ApplicationModel.Permissions
    • 弹窗组件:替换Rg.Plugins.Popup为.NET MAUI Community Toolkit的Popup,安装CommunityToolkit.Maui
    • 卡片视图:替换旧CardsView为MAUI原生自定义控件或现代第三方组件(旧版本CardsView无法兼容.NET8)

3. 强制统一依赖版本(临时方案)

若必须保留旧插件,手动在.csproj中指定统一的支持库版本:

<PackageReference Include="Xamarin.Android.Support.Compat" Version="28.0.0.1" />
<PackageReference Include="Xamarin.Android.Support.Core.Utils" Version="28.0.0.1" />
<PackageReference Include="Xamarin.Android.Support.v4" Version="28.0.0.1" />
<!-- 所有相关支持包需指定相同版本 -->

注:此方案仅作临时修复,长期会引发更多兼容性问题,推荐彻底替换为MAUI兼容组件。

4. 验证修复

  • 清理项目并恢复包:
    dotnet clean
    dotnet restore
    
  • 修复代码引用:将Xamarin.Forms相关命名空间替换为Microsoft.Maui,权限请求改为MAUI的Permissions.RequestAsync<PermissionType>()方式

内容的提问来源于stack exchange,提问作者bancqm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 12:10:57