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

使用Entity Framework Core的MAUI项目在Azure Pipeline构建失败求助

解决Azure Pipeline构建MAUI+EF Core项目的NETSDK1005错误

问题根源

MAUI主项目属于多目标框架项目(包含net9.0-android等移动端框架),它引用的独立EFCore类库仅针对通用框架(如net9.0)。Azure Pipeline构建MAUI时,会尝试为所有移动端目标框架解析依赖,但EFCore类库的project.assets.json没有对应移动端框架的目标配置,因此触发报错。

解决方案

方案1:让EFCore类库支持多目标框架

打开EFCore项目的.csproj文件,将单个TargetFramework替换为TargetFrameworks,包含MAUI所需的所有目标框架:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>net9.0;net9.0-android;net9.0-ios;net9.0-maccatalyst</TargetFrameworks>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <!-- 其他依赖配置 -->
</Project>

方案2:标记类库为跨目标项目(无需修改目标框架)

如果EFCore类库不需要针对移动端框架运行,只需在其.csproj中添加以下配置,让MAUI项目引用时不强制匹配所有目标框架:

<PropertyGroup>
  <IsCrossTargetingProject>true</IsCrossTargetingProject>
</PropertyGroup>

方案3:修正Pipeline的Restore与构建步骤

确保Pipeline中先针对整个解决方案执行restore,再进行构建:

steps:
- task: DotNetCoreCLI@2
  displayName: 'Restore dependencies'
  inputs:
    command: 'restore'
    projects: '**/*.sln'

- task: DotNetCoreCLI@2
  displayName: 'Build solution'
  inputs:
    command: 'build'
    projects: '**/*.sln'
    arguments: '--configuration Release'

如果Pipeline中有EF迁移相关的任务,指定针对通用框架执行,避免移动端框架冲突:

- task: DotNetCoreCLI@2
  displayName: 'Apply EF Migrations'
  inputs:
    command: 'run'
    projects: 'EFCore/EFCore.csproj'
    arguments: '--framework net9.0'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 22:52:09