温馨提示:本文翻译自stackoverflow.com,查看原文请点击:azure devops - How do you re-ignore files using .artifactignore with PublishPipelineArtifacts@2
azure-devops azure-pipelines continuous-integration

azure devops - 如何使用.artifactignore和PublishPipelineArtifacts @ 2重新忽略文件

发布于 2020-04-07 11:30:54

我在存储库的根目录下有一个.artifactignore,看起来像:

**/*
!**/bin/**/*
!**/obj/**/*

我可以在以下日志中观察到.artifactignore被评估:

Uploading pipeline artifact from d:\a\1\s for build #10471
Information, ApplicationInsightsTelemetrySender will correlate events with X-TFS-Session GUID
Information, DedupManifestArtifactClient will correlate http requests with X-TFS-Session GUID
Information, Using .artifactignore file located at: d:\a\1\s\.artifactignore for globbing
Information, Processing .artifactignore file surfaced 20721 files. Total files under source directory: 21471

正确地排除了bin和obj目录之外的所有内容。我想扩展此.artifactignore,使其具有其他行为:

  • 忽略所有pdb文件,无论它们位于何处

我尝试了几种变体:

**/*
!**/bin/**/*
!**/obj/**/*
*.pdb
**/*
!**/bin/**/*
!**/obj/**/*
.pdb
**/*
!**/bin/**/*
!**/obj/**/*
**/*.pdb
**/*
!**/bin/**/*
!**/obj/**/*
!!*.pdb
**/*
!**/bin/**/*
!**/obj/**/*
!!**/*.pdb
**/*
!**/bin/
!**/obj/
!!**/*.pdb

我敢肯定还有其他几种变化。所有这些都包含bin文件夹中存在的所有.pdb文件。

如何在不带.pdb文件的情况下发布所有bin和obj文件夹?

查看更多

提问者
Erick
被浏览
151
Leo Liu-MSFT 2020-02-03 16:21

如何在不带.pdb文件的情况下发布所有bin和obj文件夹?

恐怕没有这样的现成语法,如果排除了该文件的父目录,则可以重新包含该文件

这意味着,您使用语法!**/bin/**/*将父文件夹bin.artifactignore文件中排除,无法重新使用语法*.pdb或其他任何方法来重新包含文件.pdb

作为文档状态:

请参阅Git的指导上的.gitignore语法,用于.artifactignore语法是一样的

要检查细节信息,你可以参考这个线程关于.gitignore语法。

作为解决此问题的方法,我们可以使用以下语法包括除.pdb文件之外的所有文件类型

**/*

!**/bin/**/*.dll
!**/bin/**/*.xml
!**/bin/**/*.config

!**/obj/**/*.dll
!**/obj/**/*.xml
!**/obj/**/*.config

希望这可以帮助。