如何从 TFS 代理中删除默认需求 DotNetFramework?

How to remove default demand DotNetFramework from TFS agent?

我正在使用 TFS 2017 并且最近添加了安装了 docker 的 RHEL Linux 构建代理,但是当我尝试将基于此代理的 docker 构建排队时,我是低于错误

Issues with deploy phase 'Run on agent' - No agents could be found that match the following demands (queue: 'DockerLinuxRHEL'): DotNetFramework

我也试过从构建定义中删除它,但它是灰色的。

有没有办法删除此默认需求,因为此代理仅用于 docker 我不想安装其他任何东西?

因为您有一项任务需要安装 .Net 框架,例如 PowerShell、MSBuild 等

当您删除任务时,需求将被删除。

How to remove default demand DotNetFramework from TFS agent?

恐怕我们无法删除默认需求 DotNetFramework。

正如Shayki所说,需求来自于powershell任务本身。所以,如果我们想使用 powershell 任务,我们必须在 Linux 机器上安装 Net Framework。

但是,不推荐在Linux环境中构建.net framework个项目。通常我们将 mono 与参考程序集一起使用,并使用 dotnet cli 来做到这一点。

更多详情请参考this blog and the discussion here

因此,删除默认需求 DotNetFramework 或在 Linux 机器上安装 Net Framework 不是一个可行的选择。

要解决这个问题,我们可以使用 PowerShell Core task:

- pwsh:  # inline script
  workingDirectory:  #
  displayName:  #
  failOnStderr:  #
  errorActionPreference:  #
  ignoreLASTEXITCODE:  #
  env:  # mapping of environment variables to add

注意:pwsh 运行 PowerShell Core,它必须安装在代理或容器上。

希望对您有所帮助。