Azure Pipeline Archive 没有这样的文件或目录失败

Azure Pipeline Archive fails no such file or directory

我正在使用 Azure CI/CD 管道。该项目是一个成功构建的 ASP.NET 应用程序(网站项目)。 Azure Pipeline Archive 找不到目录 D:/a/_temp/WebAppContent.

我不知道管道中“存档文件”之前的“构建解决方案”是否导致了问题。

我在哪里可以检查以确保在“存档文件”之前创建了 rootFolderOrFile?

YAML

steps:
- task: VSBuild@1
  displayName: 'Build solution **\*.sln'
  inputs:
    solution: '$(Parameters.solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:publishUrl="$(Agent.TempDirectory)\WebAppContent\"'
    platform: '$(BuildPlatform)'
    configuration: '$(BuildConfiguration)'

steps:
- task: ArchiveFiles@2
  displayName: 'Archive Files'
  inputs:
    rootFolderOrFile: '$(Agent.TempDirectory)\WebAppContent'
    includeRootFolder: false

错误

ls: no such file or directory: D:/a/_temp/WebAppContent
Found 0 files
##[error]Error: ENOENT: no such file or directory, stat 'D:\a\_temp\WebAppContent'
##[error]ENOENT: no such file or directory, stat 'D:\a\_temp\WebAppContent'
Finishing: Archive Files

这是我的管道截图

Agent.TempDirectory 是代理中的临时文件夹,检查这个 doc

我们可以通过

将输出文件打包保存到指定位置
 /p:WebPublishMethod=Package /p:PackageLocation="$(Agent.TempDirectory)\WebAppContent\"

结果:

我终于解决了这个问题。请参阅下面我正在使用的管道。

  1. 创建一个新的 VS 解决方案和一个新的 Class 库项目

  2. Git 提交到 Azure > 并构建(成功)

  3. 在新解决方案> 添加现有项目> 网站(这是带有 aspx 和 aspx.cs 页面的遗留 asp.net 应用程序)

  4. 在网站中,您必须添加website.publishproj

  5. 在本地构建并 运行 在本地构建(成功)

  6. Git 再次提交到 Azure > 缺少一些 DLL

  7. 使用包含文件向项目添加了缺少的 DLL

  8. Git 再次提交到 Azure > 现在 DLL 被推送到 Git

  9. 在 Azure 中成功构建。

主要问题是我需要创建一个全新的解决方案+项目,然后添加现有网站

更新: 我必须删除默认的存档步骤并从“查找”菜单重新添加

更新二: 这是正在运行的 YAML

trigger:
- main

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1
  displayName: NuGet - Installer

- task: NuGetCommand@2
  displayName: NuGet - Restore
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  displayName: VS Build Legacy App publishproj 
  inputs:
    solution: '**\*.publishproj'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'


- task: AzureRmWebAppDeployment@4
  displayName: Azure WebApp Publish
  inputs:
    ConnectionType: 'AzureRM'
    azureSubscription: 'Azure WebApp'
    appType: 'webApp'
    WebAppName: 'XXXXXXXX'
    packageForLinux: '$(build.artifactStagingDirectory)/**/*.zip'