Azure-Pipeline Build 结果:当前的 .NET SDK 不支持面向 .NET Core 3.1

Posted

技术标签:

【中文标题】Azure-Pipeline Build 结果:当前的 .NET SDK 不支持面向 .NET Core 3.1【英文标题】:Azure-Pipeline Build resuts in: The current .NET SDK does not support targeting .NET Core 3.1 【发布时间】:2020-08-24 16:16:39 【问题描述】:

我有一个带有 .NET Framework 应用程序的 Visual Studio 2019 解决方案,以及一个构建和部署 Web 应用程序的 Azure 管道。

我最近在我的解决方案中添加了一个 Azure Functions 项目。 (.net 核心) 解决方案中的两个项目不相互引用。

在我的本地计算机上 - 解决方案构建没有问题,我可以运行这两个应用程序。

但是,当 Azure Pipeline 进程尝试构建解决方案时,会出现以下错误:

错误 NETSDK1045:当前的 .NET SDK 不支持面向 .NET 核心 3.1。以 .NET Core 2.1 或更低版本为目标,或使用 支持 .NET Core 3.1 的 .NET SDK。

我实际上希望此 Azure Pipeline 忽略新的 .net 核心项目,并继续构建然后部署我的 Web 应用程序。

如何让 Azure 以与本地计算机相同的方式构建我的项目?

【问题讨论】:

你能展示你如何在管道上编译你的解决方案吗? 嗨,您有机会尝试以下建议吗?进展如何? 最后我只是将目标更改为较低版本的 .net 核心,它就可以工作了。 - 但是我会在接下来的几天里修改它,因为我需要更新版本的 .net 核心中的一些功能。我将在本周晚些时候尝试时将此标记为答案。感谢您的帮助 【参考方案1】:

管道似乎正在尝试使用错误的 .NET Core SDK 来编译您的面向 .NET Core 3.1 的项目。

您可以尝试在还原和构建任务之前添加任务Use .NET Core,以确保在您的管道中使用 .NET Core 3.1 版本。见下文:

- task: UseDotNet@2
  inputs:
    version: 3.1.302

- task: DotNetCoreCLI@2
  inputs:
    command: restore   
    projects: '**/*.csproj'
- task: DotNetCoreCLI@2
  inputs:
    command: build 
    projects: '**/*.csproj'

如果您使用 Visual Studio 构建任务 来构建您的项目,您需要在安装了 Visual Studio 2019 的代理 windows-latest 上运行您的管道。或者您可能仍会遇到此错误“当前的 .NET SDK 不支持面向 .NET Core 3.1”

如果您想忽略新的 .net 核心项目。您可以设置build task 的项目属性来构建特定项目。见下文:

- task: DotNetCoreCLI@2
  inputs:
    command: restore 
    projects: '**/oldProject.csproj'
- task: DotNetCoreCLI@2
  inputs:
    command: build 
    projects: '**/oldProject.csproj'

Visual Studio Build 任务来构建单个项目

- task: VSBuild@1
  condition: always()
  inputs:
    solution: '**/oldProject.csproj'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
    msbuildArgs: '/t:build'

【讨论】:

以上是关于Azure-Pipeline Build 结果:当前的 .NET SDK 不支持面向 .NET Core 3.1的主要内容,如果未能解决你的问题,请参考以下文章

获取Jenkins project build结果

Jenkins查看Build结果

如何从 tfs build 的测试结果中排除有序测试的名称?

当 project/build.properties 中的 sbt.version 为 1.2.8 时,飞行方式 sbt 不起作用

当解决方案包含框架和核心项目时,Directory.Build.props 不起作用

当使用 conda-build 构建 conda 包并且我的代码使用纯 python 库时,我需要在 meta.yaml 文件中的 build/host/run 中放入啥?