azure-devops - Azure Pipelines - 文件识别模式与(Visual Studio)解决方案文件夹一起使用的一种方式?
问题描述
语境:
我在同一个解决方案中有几个项目,我通过一个管道将它们打包到 NuGet 包中并将它们存储在我的 Azure Artifacts 存储中。
步骤是:
- 安装 NuGet
- NuGet 还原
- 构建解决方案
- 运行测试
- NuGet 包(具体来说是 dotnet 包,因为它们是 .NET Standard 目标)
- 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- 我考虑过的解决方法-
- 在我想忽略的所有项目的名称中添加一个关键字,例如“Foo.Ignore.csproj”,然后排除名称中包含“Ignore”的所有项目。
- 从解决方案中卸载/删除未完成的项目,但是a)我想确保它们处于可构建和可测试的状态,并且b)由于它们保留在存储库路径中,它们仍然可以通过匹配模式发现。
但是,我不觉得这是一个牵强附会的用例,以至于它没有“受支持”的解决方案(当然,我可能是错的)。还是建立了不同的“最佳实践”?
解决方案
推荐阅读
- string - 为什么是格式!宏比直接推入字符串慢?
- animation - 断断续续的 svg 动画
- django - Django Rest 多张图片上传到 React-Native
- uwp - HoloLens 无法在开发者模式下与我的电脑配对
- ruby-on-rails - 为什么我不能在规范中创建用户?
- twitter-bootstrap - 带有 WTF 和 Flask 的 Bootstrap 下拉菜单
- python - OSMNX 最短路径 - 如果无法到达,如何跳过节点并采用下一个最近的节点
- scala - 我正在尝试将 Spark Scala 列的名称存储在一个数组中。我得到一个奇怪的输出。[Ljava.lang.String;@197d5a87
- r - R - 计算组中每个第一个值的差异
- python - 如何从 python 中停止 selemium chromdriver?