4

我正在云端的 VSTS 上构建一个 .net core asp.net 应用程序。设置它时,它与我为 .net 框架的其他构建管道不同,因为您不选择要构建的解决方案,而是提供可以找到项目文件的相对(通配符)路径。

对我来说,这最终是:Portal/API/**/*.csproj 问题是在这个路径中还有我不想构建为这个特定管道的一部分的项目文件

我试图通过这样做从构建中删除某个路径,^Portal/API/Services/IdentityServer/**/*.csproj但这没有效果。我真的希望不必指定我想要直接构建的所有项目,因为我必须添加任何应该包含的新项目(基本上除了身份服务器项目之外的所有项目)。

那么,我可以排除包含通配符路径的项目吗?

更新。 根据此页面:

https://blogs.infosupport.com/tfs2015-build-tasks-the-wildcard-format-explained/

我应该可以写Portal/API/**/*.csproj;-:Portal/API/Services/IdentityServer/**/*.csproj,但这不起作用,并且使用此配置,构建存在并显示错误说明:未找到项目。

4

2 回答 2

4

所有排除表达式始终优先于包含表达式,因此如果文件同时匹配包含表达式和排除表达式,则不包含该文件。

对于新版本的任务,它更改-!. 关于minimatch 模式的官方文档也明确声明:

领导 !将包含模式的含义更改为排除。

排除模式

尝试使用!代替-并再次测试。此外,如果您不想构建特定项目,您也可以选择不下载源文件。这可以在

隐藏您不需要的文件夹。默认情况下,项目的根文件夹映射到工作区。此配置会导致构建代理下载项目版本控制文件夹中的所有文件。

如果此文件夹包含大量数据,您的构建可能会浪费构建系统资源并通过下载大量不需要的数据来减慢构建过程。

看看这个官方教程

于 2018-09-09T06:16:11.250 回答
0

另一种解决方案是为您的包创建特定的解决方案配置,并将其用于管道任务。

创建解决方案配置 仅检查所需项目的“构建”列。

请参阅此答案的“二”部分的更多详细信息:https ://stackoverflow.com/a/65633356/1216612 ,尽管我建议阅读“一”部分。

于 2021-01-08T17:12:17.797 回答