azure-devops - DotNetCoreCL 发布步骤的工作目录参数
问题描述
我有一个包含许多解决方案的存储库。我想在 Azure DevOps 中设置构建管道并构建特定的解决方案。我只需要“标准”步骤作为“恢复包、构建、运行单元测试、发布”。但是,“发布”步骤让我很头疼。
存储库的文件夹层次结构如下所示:
src
- Solution1
- Project1
- Project2
- Project3
- Solution2
- Project4
- Project5
...
我的目标是只发布例如Solution2 的项目- 所以Project4 和Project5。将值设置workingDirectory
为 "src/Solution2" 或 "$(System.DefaultWorkingDirectory)/src/Solution2" 不能按我的预期工作。
这是构建步骤的定义。
- task: DotNetCoreCLI@2
displayName: Publish
inputs:
command: publish
arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
workingDirectory: src/Solution2
在日志中,我看到
"C:\Program Files\dotnet\dotnet.exe" 发布 [path_to_agent]_work\1\s\src\Solution1\Project1\Project1.csproj --configuration Release --output [path_to_agent]_work\1\a\Project1
以及存储库中每个项目的类似条目。
作为一种解决方法,我尝试使用“自定义”命令,但也没有成功。
- task: DotNetCoreCLI@2
displayName: 'Publish'
inputs:
command: custom
arguments: 'src/Solution2 --configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory) '
custom: publish
这会产生一个日志条目
"C:\Program Files\dotnet\dotnet.exe" 发布 [path_to_agent]_work\1\s\src\Solution1\Project1\Project1.csproj src/Solution2 --configuration Release --output [path_to_agent]_work\1\a \项目1
最终管道失败为Only one project can be specified
.
任何想法我做错了什么?
解决方案
您可以尝试使用带有 globbing 的项目设置来获取所有 csproj:
- task: DotNetCoreCLI@2
displayName: 'dotnet publish'
inputs:
command: 'publish'
publishWebProjects: false
projects: 'src/Solution2/**/*.csproj'
arguments: '-o $(Build.ArtifactStagingDirectory)/Output'
zipAfterPublish: true
modifyOutputPath: true
推荐阅读
- outlook - Outlook Windows 通知:更改用户体验,使用图标按发件人分组
- php - Laravel 5.8 身份验证在登录后返回登录页面
- r - 反应式文本输出 RShiny - 如何在文本中显示 SQL 查询的输出
- vb.net - GetElementbyID 未显示 IE.Dcoument (VB.Net)
- sql - SQL - 如何识别与表的该列中的正常内容不匹配的表行
- algorithm - 重叠池资源分配算法
- java - 我怎样才能让我的文本文件变成 40x40 矩阵
- python - tkinter 中的马拉雅拉姆语
- asp.net-core - 如何防止预呈现的 Blazor WebAssembly 应用程序中的内容闪烁?
- ios - Swift - 应用内购买完成后 WebView 为零