Fed*_*uez 6 azure-devops asp.net-core azure-pipelines-build-task azure-pipelines
运行具有以下项目/文件夹结构的Azure Build Pipeline时,我遇到了问题(不需要的行为).
我的存储库的根文件夹有两个主文件夹:
我正在尝试为后端构建一个单独的Azure管道,为前端构建一个,所以我使用该projects:参数指定正确的路径.
该build和test命令运行良好,并只还原/建筑/测试backend文件夹,但该publish命令运行这两个文件夹:后端和前端.
这是我的yaml文件:
#build backend project
task: DotNetCoreCLI@2
displayName: dotnet build --configuration $(buildConfiguration)
name: BuildBackendProject
inputs:
command: build
projects: '**/backend/**/*.csproj'
arguments: '--configuration $(buildConfiguration)'
... #run some tests
#publish backend project
task: DotNetCoreCLI@2
displayName: dotnet publish backend --configuration $(buildConfiguration)
name: PublishBackendProject
inputs:
command: publish
projects: '**/backend/**/*.csproj'
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output
$(Build.ArtifactStagingDirectory)/backend'
zipAfterPublish: True
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的文件夹路径,但它总是运行两个发布命令.
如果我在CMD中本地运行dotnet publish backend(来自repo的根文件夹),它工作正常,但显然不适用于Azure管道.
任何想法或修复都非常感激.
Her*_*des 15
诀窍在于使用publishWebProjects/projects属性.这些实际上是相互排斥的.如果publishWebProjects使用,projects则跳过属性值.
从文档:
发布Web项目*:如果为true,则任务将尝试在存储库中查找Web项目并对其运行publish命令.通过目录中存在web.config文件或wwwroot文件夹来识别Web项目.
因此,您可以尝试以下代码进行发布:
task: DotNetCoreCLI@2
displayName: dotnet publish backend --configuration $(buildConfiguration)
name: PublishBackendProject
inputs:
command: publish
projects: '**/backend/**/*.csproj'
publishWebProjects: false
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)/backend'
zipAfterPublish: true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2406 次 |
| 最近记录: |