Windows代理下GitHub Actions构建.NET 8 Blazor Hybrid MAUI报错求助
解决GitHub Actions构建.NET 8 Blazor Hybrid MAUI应用的NETSDK1112与NETSDK1047错误
错误原因分析
- NETSDK1112:依赖恢复阶段未指定
win-x64运行时标识符(RID),导致对应Windows平台的运行时包未被下载。 - NETSDK1047:在Windows环境的runner上尝试构建
maccatalyst目标框架,但Windows不支持该macOS专属目标,因此项目资产文件中没有对应条目。
修改后的GitHub Actions工作流配置
name: build on: push: branches: - master pull_request: branches: - master jobs: build-windows: runs-on: windows-latest steps: - uses: actions/checkout@v3.4.0 - name: Setup .NET 8 SDK uses: actions/setup-dotnet@v3 with: dotnet-version: 8.0.x - name: Install .NET MAUI Workload run: dotnet workload install maui --from-rollback-file https://aka.ms/dotnet/maui/8.0.20/rollback.json # 指定回滚文件确保MAUI workload与当前SDK版本兼容 - name: Restore Dependencies (Windows RID) run: dotnet restore ./BlazorHybrid.sln --runtime win-x64 --configuration Release - name: Build Windows Target Only run: dotnet build ./BlazorHybrid/MAUI/MAUI.csproj --configuration Release --no-restore --framework net8.0-windows10.0.19041.0
关键修改说明
- 指定RuntimeIdentifier恢复依赖:在
dotnet restore命令中添加--runtime win-x64,强制下载Windows平台所需的运行时包,直接解决NETSDK1112错误。 - 仅构建Windows目标框架:直接针对MAUI项目的Windows专属框架
net8.0-windows10.0.19041.0执行构建,避免触发Windows runner不支持的maccatalyst目标,解决NETSDK1047错误。 - MAUI Workload版本兼容:通过
--from-rollback-file指定与当前.NET 8 SDK版本匹配的MAUI workload安装源,规避版本不兼容导致的潜在问题。
扩展说明
若需要构建多平台版本,需使用GitHub Actions矩阵作业,为不同平台分配对应runner:
- Windows runner构建Windows目标
- macOS runner构建maccatalyst、iOS目标
- Linux runner构建Android目标
内容的提问来源于stack exchange,提问作者fingers10
相关产品推荐
相关产品推荐

