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的主要内容,如果未能解决你的问题,请参考以下文章
如何从 tfs build 的测试结果中排除有序测试的名称?
当 project/build.properties 中的 sbt.version 为 1.2.8 时,飞行方式 sbt 不起作用
当解决方案包含框架和核心项目时,Directory.Build.props 不起作用
当使用 conda-build 构建 conda 包并且我的代码使用纯 python 库时,我需要在 meta.yaml 文件中的 build/host/run 中放入啥?