Azure Pipelines PublishSymbols 任务中,如何指定多个搜索模式?

In the Azure Pipelines PublishSymbols task, how to specify multiple search patterns?

我们的管道中有以下 PublishSymbols 任务,并且工作正常。

  - task: PublishSymbols@2
inputs:
  symbolsFolder: $(Pipeline.Workspace)/s/Server
  searchPattern: "**/*.pdb"
  indexSources: true
  publishSymbols: true
  symbolServerType: TeamServices
  symbolsProduct: "ACM"
  symbolsVersion: $(major).$(minor).$(revision)
  symbolsArtifactName: "Symbols_ACM.$(major).$(minor).$(revision)_$(buildConfiguration)"
enabled: true
condition: eq(variables['doPublishSymbols'], 'true')
displayName: Create symbol table

但是,我们想要微调 searchPattern 输入,以便它只查找以 abcxyz[ 开头的 PDB 文件=52=]。我该怎么做?

  1. 逗号分隔的字符串?

    searchPattern: "**/abc*pdb", "**/xyz*pdb"

  2. 数组?

    搜索模式:@("**/abc*pdb", "**/xyz*pdb")

  3. 某种或符号?

    searchPattern: "**/abc*pdb" | “**/xyz*pdb”

  4. PowerShell 换行符怎么样?从 the source files on Github,我推断这可能是解决方案:

    搜索模式:“**/abc*pdb`n**/xyz*pdb”

但这是结果:

Found 0 files.

##[warning]No files selected for indexing.

一个相关问题,处理其他文件类型:

我的同事建议我包括与 PDB 文件关联的 EXE 或 DLL 文件,因此 searchPattern 也将包括“abc*exe”、“abc*dll”等。 PublishSymbols 需要这些附加文件吗?或者 PDB 文件是否包含任务所需的所有信息?

我在网上研究过符号 symstore.exe 和 symbol.exe,但我还没有找到这个问题的好答案。

In the Azure Pipelines PublishSymbols task, how to specify multiple search patterns?

您可以直接使用换行符指定多个搜索模式:

- task: PublishSymbols@2
  displayName: 'Publish symbols path'
  inputs:
    SearchPattern: |
     **\bin\**\abc*.pdb
     **\bin\**\xyz*.pdb
    indexSources: true

so the searchPattern will also include "abcexe", "abcdll", and so on. Does PublishSymbols need these additional files? Or do the PDB files contain all of the information required by the task?

根据文档Publish symbols for debugging

With Azure Pipelines, you can publish your symbols to Azure Artifacts symbol server using the Index sources and publish symbols task.

因此,PublishSymbols 需要这些额外的文件,这些文件应该包含在相应的 nuget 包中,而不是 Symbols 包中。