首页 > 解决方案 > Azure Pipelines - 文件识别模式与(Visual Studio)解决方案文件夹一起使用的一种方式?

问题描述

语境:

我在同一个解决方案中有几个项目,我通过一个管道将它们打包到 NuGet 包中并将它们存储在我的 Azure Artifacts 存储中。

步骤是:

  1. 安装 NuGet
  2. NuGet 还原
  3. 构建解决方案
  4. 运行测试
  5. NuGet 包(具体来说是 dotnet 包,因为它们是 .NET Standard 目标)
  6. NuGet 推送(到 Artifacts 存储)

但是,该解决方案包含一些我还不想打包的尚未完成的打包项目以及我的测试项目,它们也应该被排除在外。

很简单,在这种情况下,我的文件匹配模式将只包含我想要的项目的名称,例如:

'**/*Proj1.csproj;**/*Proj2.csproj;**/*Proj3.csproj;'

但现在我希望将一些新项目添加到这个运输“集合”中。因此,我的模式也必须包括它们。

'**/*Proj1.csproj;**/*Proj2.csproj;**/*Proj3.csproj;**/*Proj4.csproj;**/*Proj5.csproj;'

如您所见,这几乎不是通用的。每次更改、包含或反转模式时,我都必须修改模式 - 每次我想排除项目时。

我希望将相同的管道或至少结构(尽可能多地)应用于相同类型的一些解决方案,我希望通过我现有的一些命名约定来实现。

问题:

有没有办法转:

'**/*Proj1.csproj;**/*Proj2.csproj;**/*Proj3.csproj;**/*Proj4.csproj;**/*Proj5.csproj;'

进入

'**/Packages/**.csproj;' //or something very similar

其中'Packages'是一个VS解决方案文件夹(因为实际文件夹在解决方案的基础内不起作用),最终目标是发现(并打包)'Packages'解决方案文件夹中的每个项目,并忽略外面的所有内容其中。

问题是解决方案文件夹不是路径结构的实际部分......

PS- 我考虑过的解决方法-

但是,我不觉得这是一个牵强附会的用例,以至于它没有“受支持”的解决方案(当然,我可能是错的)。还是建立了不同的“最佳实践”?

标签: azure-devopspattern-matchingazure-pipelines

解决方案


推荐阅读