0

我们的管道中有以下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 文件。我怎样才能做到这一点?

  1. 逗号分隔的字符串?

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

  2. 大批?

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

  3. 某种或符号?

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

  4. PowerShell 换行符怎么样?从Github 上的源文件,我推断这可能是解决方案:

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

但这就是结果:

找到 0 个文件。

##[警告]没有选择用于索引的文件。

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

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

我在网上研究了symbols、symstore.exe和symbol.exe,还没有找到这个问题的好答案。

4

1 回答 1

1

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

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

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

因此 searchPattern 还将包括“abc exe”、“abc dll”等。PublishSymbols 是否需要这些附加文件?或者 PDB 文件是否包含任务所需的所有信息?

根据文档发布符号进行调试:</p>

借助 Azure Pipelines,可以使用索引源和发布符号任务将符号发布到 Azure Artifacts 符号服务器

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

于 2022-03-03T02:41:54.643 回答