无法在 Azure DevOps Build Pipeline 中使用 .NET SDK 代理

Vig*_*ind 14 azure-devops azure-pipelines

我有一个 ASP.NET Core 2.1 并添加了 Microsoft.WindowsAzure.Storage 的 nuget 包,但是在将代码推送到 repo 后,构建管道在运行构建代理时发生包错误,是否有必要在构建中添加任何其他代理除 BUILD、RESTORE、TEST 和 PUBLISH 之外的管道。

[错误] 错误:进程 'C:\hostedtoolcache\windows\dotnet\dotnet.exe' 失败,退出代码为 1

信息:Azure Pipelines 托管代理已更新为包含 .Net Core 3.x SDK/Runtime 以及 2.2 和 2.1。除非您已锁定项目的 SDK 版本,否则可能会选择 3.x SDK,与以前的版本相比,它可能具有破坏性行为。

这是它在运行管道时显示的错误。

Lan*_*SFT 15

正如错误信息所指示的那样,不建议调用latest 3.x sdk以恢复、构建、测试、发布您的目标为asp .net core 2.1.

虽然在大多数情况下构建可以通过,但发布步骤(任务)可能会遇到这个问题:

在此处输入图片说明

要解决此问题:

我们应该.net core在运行任务之前指定我们想要使用的sdk 版本restore,build,test,publish......

我们可以像这样在其他 .net core 任务之前添加一个use .net core sdk 任务,以获取.net core 2.1.x相关版本来执行以下任务,而不是使用.net core 3.x sdk

经典界面:

在此处输入图片说明

指定2.1.x+Include Preview Versions将选择最新版本的 2.1 sdk。

亚姆:

如果您使用 yaml 格式而不是经典 UI 格式来配置管道,则其 yaml 格式类似于以下内容:

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

希望它有所帮助,如果我有任何误解,请随时纠正我:)


小智 6

我在 2.1.505 版本中遇到了同样的问题,现在我在使用 3.1.101 版本的同时,在我的 yaml 管道中对 .NET Core 的变量和安装程序步骤使用以下配置,它解决了我的问题。

variables:
  buildConfiguration: 'Release'
  dotnetSdkVersion: '3.1.101'

steps:
- task: DotNetCoreInstaller@0
  displayName: 'Use .NET Core SDK $(dotnetSdkVersion)'
  inputs:
    version: '$(dotnetSdkVersion)'
Run Code Online (Sandbox Code Playgroud)