设置 VSTS 构建和发布以忽略项目的特定文件夹

Jen*_*nsB 5 build-pipeline azure-devops azure-pipelines

我正在云中的 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但这不起作用,并且使用此配置,构建存在错误,指出:未找到项目。

Pat*_*SFT 4

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

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

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

排除模式

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

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

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

看看这个官方教程