.net core Azure管道第二个作业找不到第一个作业的结果

.net core Azure管道第二个作业找不到第一个作业的结果,.net-core,azure-pipelines,.net Core,Azure Pipelines,我开始使用azure-pipelines.yml 我想在同一阶段有两份工作。一个用于构建解决方案,另一个用于运行单元测试 问题在于,第二个作业执行了脚本步骤,但未找到前一个作业本应创建的文件夹版本: trigger: - master pool: vmImage: 'ubuntu-18.04' stages: - stage: CI jobs: - job: Build steps: - task: NuGetAuthenticate@0 - script

我开始使用azure-pipelines.yml

我想在同一阶段有两份工作。一个用于构建解决方案,另一个用于运行单元测试

问题在于,第二个作业执行了脚本步骤,但未找到前一个作业本应创建的文件夹版本:

trigger:
- master

pool:
  vmImage: 'ubuntu-18.04'

stages:
- stage: CI
  jobs:
  - job: Build
    steps:
    - task: NuGetAuthenticate@0
    - script: dotnet restore --no-cache --force
    - script: dotnet build --configuration Release --no-restore
  - job: UnitTests
    dependsOn: Build
    steps:
    - script: dotnet vstest test/*UnitTests/bin/Release/**/*UnitTests.dll
但是,如果我在同一个作业中添加所有步骤,它就会起作用:

trigger:
- master

pool:
  vmImage: 'ubuntu-18.04'

stages:
- stage: CI
  jobs:
  - job: Build
    steps:
    - task: NuGetAuthenticate@0
    - script: dotnet restore --no-cache --force
    - script: dotnet build --configuration Release --no-restore
    - script: dotnet vstest test/*UnitTests/bin/Release/**/*UnitTests.dll
我找不到有关从属作业无法在文件系统上找到上一个作业生成的文件夹的原因的答案。任何解释或链接到澄清的东西,将不胜感激


我过去使用过gitlab,我不记得有过类似的行为,尽管我不知道它是否有job的概念,与steps不同。

您缺少的关键因素是job运行在独立代理的独立计算机上,并且没有任何类型的共享文件系统

在一个作业中创建的、您希望在从属作业中可用的任何文件必须显式暂存在作业“a”中,然后显式下载到作业“B”中

请参见发布:

下载:


您缺少的关键要素是作业在独立代理和独立计算机上运行,并且没有任何类型的共享文件系统

在一个作业中创建的、您希望在从属作业中可用的任何文件必须显式暂存在作业“a”中,然后显式下载到作业“B”中

请参见发布:

下载:


您是否尝试过使用发布管道工件任务?MS引入此功能是为了在作业之间传递工件。如果所有步骤都是单个作业的一部分,会不会有问题?老实说,这看起来确实是您的最佳解决方案。您是否尝试过使用发布管道工件任务?MS引入此功能是为了在作业之间传递工件。如果所有步骤都是单个作业的一部分,会不会有问题?老实说,这看起来确实是你的最佳解决方案。