Azure Pipelines遇NETSDK1139错误:未识别Android目标平台
解决.NET MAUI Azure DevOps构建中NETSDK1139错误的方案
问题核心
你遇到的Error NETSDK1139是NuGet还原阶段无法识别Android目标平台导致的——尽管已安装MAUI相关workload,但NuGetCommand@2任务可能未正确关联dotnet的workload环境,或代理缺少Android SDK基础组件。
具体修复步骤
替换NuGet还原任务为dotnet原生命令
既然dotnet restore此前执行正常,直接改用DotNetCoreCLI@2任务完成还原,规避NuGet任务与dotnet workload的兼容性问题:- task: DotNetCoreCLI@2 displayName: 'Dotnet Restore' inputs: command: 'restore' projects: '**/*.csproj' feedsToUse: 'select'补装Android SDK核心组件
仅安装maui-android workload可能不够,Windows代理可能缺少Android构建必需的工具。添加PowerShell任务执行以下安装命令:& "$env:ANDROID_SDK_ROOT\cmdline-tools\latest\bin\sdkmanager.bat" "build-tools;33.0.2" "platforms;android-33" "cmdline-tools;latest"注:请将版本号替换为你项目中指定的Android API级别。
验证workload与dotnet版本匹配
Azure DevOps代理可能存在多版本dotnet,执行以下命令确认当前使用的版本和workload安装状态:dotnet --version dotnet workload list --verbosity detailed如果版本不匹配,添加
UseDotNet@2任务切换到项目依赖的.NET 7版本:- task: UseDotNet@2 inputs: packageType: 'sdk' version: '7.x'重新安装完整的Android相关workload
带上NuGet源参数重新执行安装,避免代理内部源的缓存或依赖缺失问题:dotnet workload install maui-android --source https://api.nuget.org/v3/index.json dotnet workload install android --source https://api.nuget.org/v3/index.json
额外排查点
- 切换Azure DevOps代理镜像至
windows-latest,新版本镜像默认包含更多MAUI预安装依赖。 - 检查csproj文件是否指定了正确的Android SDK版本:
<AndroidSdkVersion>33</AndroidSdkVersion> <AndroidTargetSdkVersion>33</AndroidTargetSdkVersion>
内容的提问来源于stack exchange,提问作者Rafael
相关产品推荐
相关产品推荐

