所以我有一个包含多个.NET项目的解决方案。
解决方案1包含 解决方案1 /项目1 解决方案1 /项目2 解决方案1 /项目3
每个项目都有多个底层文件夹和文件,它们必须位于同一结构中。
我正在使用Azure Devops自动化部署。当使用天蓝色的DevOps构建解决方案时,它将文件复制到StagingDirectory并在那里创建一个包。当我打开此程序包时,每个文件都将复制到该程序包中,但是没有文件夹,也没有结构。 如何设置将每个解决方案都分离到其自己的文件夹的版本。我想不通。
非常感谢。
答案 0 :(得分:0)
您可以使用“复制文件”任务的多个实例来定义工件的文件夹结构。结合使用“源文件夹”,“内容”(允许过滤文件)和“目标文件夹”属性,可以创建适合您的结构。只需小心不要选中“清理目标文件夹”或“平坦文件夹”选项,否则您可能会冒失去要使用的某些结构的风险。
类似的东西:
"Source Folder" = "Solution"
"Contents" = "**/Scripts/**/*.*"
"Target Folder" = "$(Build.ArtifactStagingDirectory)/Scripts"
"Source Folder" = "Solution"
"Contents" = "**/*_GLOBAL/**/*.*"
"Target Folder" = "$(Build.ArtifactStagingDirectory)/Global"
"Source Folder" = "Solution"
"Contents" = "**/*_REPORTING/**/*.*"
"Target Folder" = "$(Build.ArtifactStagingDirectory)/Reporting"
应该给你:
Artifact
- Scripts
- Script 1
- Script 2
...
- Global
- Global.exe
...
- Reporting
- Reporting.exe
...
尽管通过调整上面的参数,您应该能够实现所追求的目标,但我建议,如果您的解决方案包含多个单独实现不同目标的项目,那么您可能希望将其拆分为单独的解决方案(_REPORTING),并使用NuGet或类似工具引入通用功能(_GLOBAL?)。