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

如何让Azure Pipelines构建含.NET 8与.NET MAUI类库的解决方案?

解决Azure Pipelines中MAUI构建NETSDK1005报错的问题

问题根源

当你在Azure Pipelines中直接执行dotnet publish -f net8.0-android时,该命令会强制解决方案内所有项目都以net8.0-android为目标框架构建,但普通.NET 8类库仅包含net8.0目标,因此触发NETSDK1005错误。而Visual Studio在构建时会自动处理依赖项目的框架兼容逻辑:仅为MAUI项目指定net8.0-android目标,普通类库则使用自身的net8.0目标构建,所以本地构建不会报错。

修复方法

方法1:指定MAUI应用项目路径

直接在publish命令中明确指定MAUI应用的项目文件路径,命令仅会构建MAUI项目及其依赖,且依赖的普通类库会自动使用兼容的net8.0目标:

- task: Bash@3
  displayName: Build App
  inputs:
    targetType: 'inline'
    script: |
      dotnet publish ./YourMauiApp/YourMauiApp.csproj -f net8.0-android -c Release

将./YourMauiApp/YourMauiApp.csproj替换为你实际的MAUI项目相对路径。

方法2:使用--no-restrictive-framework参数(.NET 8+支持)

若不想指定具体项目路径,可添加--no-restrictive-framework参数,该参数会告知dotnet命令不要强制所有依赖项目使用指定的目标框架,允许依赖项目使用自身兼容的框架:

- task: Bash@3
  displayName: Build App
  inputs:
    targetType: 'inline'
    script: |
      dotnet publish -f net8.0-android -c Release --no-restrictive-framework

此参数为.NET 8新增,专门用于解决跨框架依赖构建的这类问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 06:09:58