Blazor MAUI Windows升级.NET 9遇NU1102 NuGet包查找错误求助
问题根源
这两个包找不到的核心原因是构建环境里,指定版本的运行时和SDK引用包缺失,大概率和.NET SDK版本不匹配、NuGet缓存残留、Azure Pipelines环境配置有关。
具体修复步骤
统一项目文件版本
打开项目的.csproj文件,把所有.NET相关的包引用、目标框架版本和你用的9.0.101 SDK对齐。比如目标框架改成<TargetFrameworks>net9.0-android;net9.0-windows10.0.19041.0</TargetFrameworks>(Windows版本号按实际情况调整),同时把Microsoft.AspNetCore.Components.WebView.Maui这类包的版本改成9.0.101,别硬写死9.0.0。清理NuGet缓存和锁定文件
在Azure Pipelines的构建步骤里加这两条命令,清掉旧缓存和锁定文件,强制拉取匹配当前SDK的包:dotnet nuget locals all --clear del $(Build.SourcesDirectory)\**\packages.lock.json检查Azure环境的SDK和工作负载
虽然用了windows-latest和9.0.101 SDK,但得确认环境里装了Windows相关的运行时和MAUI工作负载。可以在构建前加步骤验证:dotnet --list-sdks dotnet --list-runtimes如果没找到对应版本的
Microsoft.NETCore.App.Runtime.Mono.win-x64或者Windows SDK组件,直接安装MAUI Windows工作负载:dotnet workload install maui-windows --source https://api.nuget.org/v3/index.json确认NuGet源配置
保证Azure Pipelines用的NuGet源包含官方NuGet.org,避免私有源漏包。加这条命令添加官方源:dotnet nuget add source https://api.nuget.org/v3/index.json --name nuget.org检查global.json文件
如果项目根目录有global.json,里面的sdk.version要设成9.0.101,别强制用旧版本:{ "sdk": { "version": "9.0.101", "rollForward": "latestMinor" } }
验证方法
改完之后重新跑Azure构建,看看错误是否消失。如果还不行,先在本地Windows环境用相同的.NET 9.0.101版本构建,排除Azure环境的特殊问题。
内容的提问来源于stack exchange,提问作者Smith5727

