无法在Azure DevOps构建管道中使用.NET SDK代理

时间:2019-12-25 00:35:39

标签: azure-devops azure-pipelines

我有一个ASP.NET Core 2.1,并添加了一个Microsoft.WindowsAzure.Storage的nuget包,但是在推送代码回购之后,运行构建代理时,构建管道会发生包错误,是否有必要添加其他任何内容除了构建,还原,测试和发布之外的构建管道中的代理。

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

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

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

4 个答案:

答案 0 :(得分:5)

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

find . -type f -name 'output.tgz' -execdir tar xfz {} +

答案 1 :(得分:1)

如错误信息所示,建议不要调用latest 3.x sdk来恢复,构建,测试和发布针对asp .net core 2.1的项目。

尽管在大多数情况下,构建可以通过,但是“发布”步骤(任务)可能会遇到此问题:

enter image description here

要解决此问题,请执行以下操作:

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

我们可以在其他诸如此类的.net核心任务之前添加use .net core sdk task,以获取与.net core 2.1.x相关的版本以执行以下任务,而不是使用.net core 3.x sdk

经典界面:

enter image description here

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

Yaml:

如果您使用的是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

希望它会帮助我,如果我误解了什么,可以随时纠正我:)

答案 2 :(得分:1)

以下步骤对我有用:

  • 在名为“使用.Net Core”的还原任务之前添加任务
  • 指定以“ x”结尾的预期sdk版本。例如2.x
  • 选中“包括预览版本”选项

答案 3 :(得分:-1)

将.csproj中的这一行添加到PropertyGroup标记中

<TargetLatestRuntimePatch>false</TargetLatestRuntimePatch>