将特定版本的 .NET Core 与 Azure DevOps“DotNetCoreCLI”任务结合使用

Dav*_*ard 6 .net-core azure-devops

我正在创建 Azure DevOps 管道,并且需要使用 .NET Core 3.1。

文档中,我看不到任何明显的参考将用于该任务的 .NET Core 版本DotNetCoreCLI,所以我尝试了一下 -

- task: DotNetCoreCLI@2
  name: Dotnet_Restore
  inputs:
    command: 'restore'
    feedsToUse: 'select'
Run Code Online (Sandbox Code Playgroud)

失败并出现错误The current .NET SDK does not support targeting .NET Core 3.1.,但有趣的是日志状态 -

信息:Azure Pipelines 托管代理已更新为包含 .Net Core 3.x SDK/运行时以及 2.2 和 2.1。

考虑到这一点,我再次查看了文档并找到了参数requestedMajor|Minor|PatchVersion,所以我更新了我的任务 -

- task: DotNetCoreCLI@2
  name: Dotnet_Restore
  inputs:
    command: 'restore'
    feedsToUse: 'select'
    requestedMajorVersion: '3'
    requestedMinorVersion: '1'
Run Code Online (Sandbox Code Playgroud)

遗憾的是,这也失败了,具有与上面相同的“Info”语句。

Dav*_*ard 14

UseDotNet任务似乎是我在这里需要的,其描述如下 -

在构建或发布管道中使用此任务从 Internet 或工具缓存获取特定版本的 .NET Core 并将其添加到 PATH。

您还可以使用此任务更改后续任务(例如 .NET Core cli 任务)中使用的 .NET Core 版本。

为了进行测试,我在管道的开头添加了一个新任务,请求 .NET Core 版本 3.1.101 -

- task: UseDotNet@2
  displayName: 'Use .NET Core sdk'
  inputs:
    packageType: sdk
    version: 3.1.x
    installationPath: $(Agent.ToolsDirectory)/dotnet
Run Code Online (Sandbox Code Playgroud)

重要的提示

如果您DotNetCoreCLI在多个作业中使用该任务,则必须将该UseDotNet任务包含在每个作业的开头。这是非常不方便的,希望将来可以改进。