繁体   English   中英

构建的源目录是什么?

[英]What is the source directory of the build?

我有以下任务:

steps:
- task: MSBuild@1
  displayName: '$(ProjectName) .Net build | Build solution (No need to build test as well)'
  inputs:
    solution: '**/$(ProjectName)/*.csproj'
    msbuildArchitecture: x64
    configuration: Release
    msbuildArguments: '/p:OutputPath=$(Build.ArtifactStagingDirectory)'
    clean: true

steps:
- task: CopyFiles@2
  displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)/Release'
  inputs:
    SourceFolder: '$(Build.ArtifactStagingDirectory)/$(ProjectName)'
    Contents: |
     bin/**
     Bundles/**
     Views/**
     appsettings.json
     appsettings.Development.json
     *.txt
     **/wwwroot/favicon-*.png
     **/wwwroot/favicon-*.ico
    TargetFolder: '$(Build.ArtifactStagingDirectory)/Release'

由于某种原因,复制步骤失败并显示: ##[error]Error: Not found SourceFolder: D:\a\1\a\projectname

这是为什么?

在本地 VS 构建之后,我的项目 output 结构是这样的:

wwwroot1 wwwroot2

pipeline.Net 构建步骤创建目录如下:

Creating directory "D:\a\1\a\nl".
Creating directory "D:\a\1\a\cs".
Creating directory "D:\a\1\a\de".
...
2022-09-21T02:38:30.3292966Z   Creating directory "D:\a\1\a\runtimes\win-arm\native".
2022-09-21T02:38:30.3293353Z   Creating directory "D:\a\1\a\runtimes\win\lib\netcoreapp3.1".
2022-09-21T02:38:30.3293727Z   Creating directory "D:\a\1\a\runtimes\win-arm64\native".
2022-09-21T02:38:31.1717424Z   Creating directory "D:\a\1\a\refs".
2022-09-21T02:38:31.1717862Z   Creating directory "D:\a\1\a\refs".
2022-09-21T02:38:31.1718174Z   Creating directory "D:\a\1\a\refs".

所以我假设源是D:\a\1\a\projectnameSourceFolder: '$(Build.ArtifactStagingDirectory)/$(ProjectName)'但这似乎不起作用。

我的理由是在开发人员将项目升级到 .NET6 之前,在旧的 asp.NET model 中,output 是一个 wwwroot 目录,因此它会在构建日志中转换为:

Creating directory "D:\a\1\a\_PublishedWebsites\projectname\Content\...

所以我的复制任务源将是SourceFolder: '$(Build.ArtifactStagingDirectory)/_PublishedWebsites/$(ProjectName)'并且通常可以正常工作。

但是_PublishedWebsites似乎不再是 .NET6 构建 output 的一部分,所以我不确定现在的来源是什么

要确定构建如何生成目录结构,您可以添加以下任务并检查 output:

steps:
  - task: MSBuild@1
    displayName: '$(ProjectName) .Net build | Build solution (No need to build test as well)'
    inputs:
      solution: '**/$(ProjectName)/*.csproj'
      msbuildArchitecture: x64
      configuration: Release
      msbuildArguments: '/p:OutputPath=$(Build.ArtifactStagingDirectory)'
      clean: true
      
  - powershell: |
      Get-ChildItem $(Build.ArtifactStagingDirectory) -Recurse
    displayName: 'Check agent directories'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM