다음을 통해 공유


PublishSymbols@2 - 원본 인덱싱 및 기호 v2 게시 작업

이 작업을 사용하여 소스 코드를 인덱싱하고 파일 공유 또는 Azure Artifacts 기호 서버에 기호를 게시합니다.

소스 코드를 인덱싱하면 기호 파일을 사용하여 애플리케이션을 빌드하는 데 사용한 컴퓨터 이외의 컴퓨터에서 애플리케이션을 디버그할 수 있습니다. 예를 들어 소스 코드가 없는 개발 머신에서 빌드 에이전트가 빌드한 애플리케이션을 디버그할 수 있습니다.

기호 서버를 사용하면 디버거가 제품 이름, 빌드 번호 또는 패키지 이름을 모르고 올바른 기호 파일을 자동으로 검색할 수 있습니다.

Syntax

# Index sources and publish symbols v2
# Index your source code and publish symbols to a file share or Azure Artifacts symbol server.
- task: PublishSymbols@2
  inputs:
    #SymbolsFolder: '$(Build.SourcesDirectory)' # string. Path to symbols folder. Default: $(Build.SourcesDirectory).
    SearchPattern: '**/bin/**/*.pdb' # string. Required. Search pattern. Default: **/bin/**/*.pdb.
    #IndexSources: true # boolean. Index sources. Default: true.
    #PublishSymbols: true # boolean. Publish symbols. Default: true.
    SymbolServerType: # 'TeamServices' | 'FileShare'. Required when PublishSymbols = true. Symbol server type. 
    #SymbolsPath: # string. Optional. Use when PublishSymbols = true && SymbolServerType = FileShare. Path to publish symbols. 
    #CompressSymbols: false # boolean. Optional. Use when SymbolServerType = FileShare. Compress symbols. Default: false.
    #SymbolExpirationInDays: '36530' # string. Optional. Use when PublishSymbols = true && SymbolServerType = TeamServices. Symbol Expiration (in days). Default: 36530.
  # Advanced
    #IndexableFileFormats: 'Default' # 'Default' | 'Pdb' | 'SourceMap' | 'All'. Optional. Use when PublishSymbols = true && SymbolServerType = TeamServices. Symbol file formats to publish. Default: Default.
    #DetailedLog: true # boolean. Verbose logging. Default: true.
    #TreatNotIndexedAsWarning: false # boolean. Warn if not indexed. Default: false.
    #UseNetCoreClientTool: false # boolean. Use NetCore client tool. Default: false.
    #SymbolsMaximumWaitTime: # string. Max wait time (min). 
    #SymbolsProduct: # string. Product. 
    #SymbolsVersion: # string. Version. 
    #SymbolsArtifactName: 'Symbols_$(BuildConfiguration)' # string. Artifact name. Default: Symbols_$(BuildConfiguration).
# Index sources and publish symbols v2
# Index your source code and publish symbols to a file share or Azure Artifacts symbol server.
- task: PublishSymbols@2
  inputs:
    #SymbolsFolder: '$(Build.SourcesDirectory)' # string. Path to symbols folder. Default: $(Build.SourcesDirectory).
    SearchPattern: '**/bin/**/*.pdb' # string. Required. Search pattern. Default: **/bin/**/*.pdb.
    #IndexSources: true # boolean. Index sources. Default: true.
    #PublishSymbols: true # boolean. Publish symbols. Default: true.
    SymbolServerType: # 'TeamServices' | 'FileShare'. Required when PublishSymbols = true. Symbol server type. 
    #SymbolsPath: # string. Optional. Use when PublishSymbols = true && SymbolServerType = FileShare. Path to publish symbols. 
    #CompressSymbols: false # boolean. Optional. Use when SymbolServerType = FileShare. Compress symbols. Default: false.
  # Advanced
    #DetailedLog: true # boolean. Verbose logging. Default: true.
    #TreatNotIndexedAsWarning: false # boolean. Warn if not indexed. Default: false.
    #SymbolsMaximumWaitTime: # string. Max wait time (min). 
    #SymbolsProduct: # string. Product. 
    #SymbolsVersion: # string. Version. 
    #SymbolsArtifactName: 'Symbols_$(BuildConfiguration)' # string. Artifact name. Default: Symbols_$(BuildConfiguration).
# Index sources and publish symbols v2
# Index your source code and publish symbols to a file share or Azure Artifacts Symbol Server.
- task: PublishSymbols@2
  inputs:
    #SymbolsFolder: '$(Build.SourcesDirectory)' # string. Path to symbols folder. Default: $(Build.SourcesDirectory).
    SearchPattern: '**/bin/**/*.pdb' # string. Required. Search pattern. Default: **/bin/**/*.pdb.
    #IndexSources: true # boolean. Index sources. Default: true.
    #PublishSymbols: true # boolean. Publish symbols. Default: true.
    SymbolServerType: # 'TeamServices' | 'FileShare'. Required when PublishSymbols = true. Symbol server type. 
    #SymbolsPath: # string. Optional. Use when PublishSymbols = true && SymbolServerType = FileShare. Path to publish symbols. 
    #CompressSymbols: false # boolean. Optional. Use when SymbolServerType = FileShare. Compress symbols. Default: false.
  # Advanced
    #DetailedLog: true # boolean. Verbose logging. Default: true.
    #TreatNotIndexedAsWarning: false # boolean. Warn if not indexed. Default: false.
    #SymbolsMaximumWaitTime: # string. Max wait time (min). 
    #SymbolsProduct: # string. Product. 
    #SymbolsVersion: # string. Version. 
    #SymbolsArtifactName: 'Symbols_$(BuildConfiguration)' # string. Artifact name. Default: Symbols_$(BuildConfiguration).

입력

SymbolsFolder - 기호 폴더에 대한 경로
string. 기본값은 $(Build.SourcesDirectory)입니다.

기호 파일을 사용하여 검색되는 폴더의 경로를 지정합니다. 기본값은 $(Build.SourcesDirectory)입니다. 그렇지 않으면 와 같은 $(Build.BinariesDirectory)/MyProject루트 경로를 지정합니다.

참고

서버 유형으로 Azure Artifacts 기호 서버를 선택하는 경우 UNC 경로는 지원되지 않습니다.


SearchPattern - Search 패턴
string. 필수 요소. 기본값은 **/bin/**/*.pdb입니다.

게시할 PDB 파일을 검색하는 데 사용되는 패턴을 지정합니다. 자세한 내용은 파일 일치 패턴 참조 를 참조하세요.


IndexSources - 인덱스 원본
boolean. 기본값은 true입니다.

원본 서버 정보를 PDB 파일에 삽입할지 여부를 지정합니다. 이 옵션은 Windows 에이전트에서만 지원됩니다.


PublishSymbols - 기호 게시
boolean. 기본값은 true입니다.

기호 파일을 게시할지 여부를 지정합니다.


SymbolServerType - 기호 서버 유형
string. 필요한 경우 PublishSymbols = true입니다. 허용되는 값: TeamServices (이 organization/컬렉션의 기호 서버(Azure Artifacts 필요)), FileShare (파일 공유).

기호를 게시할 위치를 지정합니다. Azure Artifacts 기호 서버에 게시된 기호는 organization/컬렉션에 액세스할 수 있는 모든 사용자가 액세스할 수 있습니다. Azure DevOps Server 옵션만 지원합니다File share. Azure Artifacts에서 기호 서버를 사용하기 위한 디버깅에 대한 기호 게시 지침을 참조하세요.


SymbolsPath - 기호를 게시하는 경로
string. 선택 사항입니다. 를 사용하는 경우 PublishSymbols = true && SymbolServerType = FileShare를 사용합니다.

기호를 호스트하는 파일 공유를 지정합니다. 이 값은 에 대한 호출 symstore.exe add 에서 매개 변수로 /s 사용됩니다. SymStore 기호 저장소를 준비하려면 다음을 수행합니다.

  1. 파일 공유 서버에 기호를 저장할 폴더를 설정합니다. 예를 들어 를 설정합니다 \fabrikam-share\symbols.
  2. 빌드 에이전트 서비스 계정에 대한 모든 권한 권한을 부여합니다.

이 인수를 비워 두면 기호는 원본 인덱싱되지만 게시되지 않습니다. 기호를 드롭과 함께 저장할 수도 있습니다. 빌드 아티팩트 게시를 참조하세요.


CompressSymbols - 기호 압축
boolean. 선택 사항입니다. 를 사용하는 경우 SymbolServerType = FileShare를 사용합니다. 기본값은 false입니다.

파일 공유에 게시할 때 기호를 압축합니다.


SymbolExpirationInDays - 기호 만료(일)
string. 선택 사항입니다. 를 사용하는 경우 PublishSymbols = true && SymbolServerType = TeamServices를 사용합니다. 기본값은 36530입니다.

기호를 보존해야 하는 일 수를 지정합니다.


IndexableFileFormats - 게시할 기호 파일 형식
string. 선택 사항입니다. 를 사용하는 경우 PublishSymbols = true && SymbolServerType = TeamServices를 사용합니다. 허용되는 값: Default (업로드할 기본 기호 집합), Pdb (Pdb 기반 기호만 Windows pdb 및 관리형 이식 가능한 pdb) SourceMap (JavaScript 기반 SourceMap 기호(*.js.map)만), All (지원되는 모든 기호 형식). 기본값은 Default입니다.

기호 서버에 게시할 디버그 형식을 지정합니다.


DetailedLog - 자세한 정보 로깅
boolean. 기본값은 true입니다.

자세한 로깅을 지정합니다.


TreatNotIndexedAsWarning - 인덱싱되지 않으면 경고
boolean. 기본값은 false입니다.

원본이 PDB 파일에 대해 인덱싱되지 않은 경우 경고할지 여부를 지정합니다. 그렇지 않으면 메시지가 일반 출력으로 기록됩니다.


UseNetCoreClientTool - NetCore 클라이언트 도구 사용
boolean. 기본값은 false입니다.

DWARF 및 ELF 파일을 지원하는 기호 업로드 도구 버전을 사용할지 여부를 지정합니다. 이 옵션은 Windows 에이전트에서만 중요합니다. Windows가 아닌 에이전트에서는 DWARF 및 ELF 파일을 지원하는 기호 업로드 도구의 버전이 항상 사용됩니다.


SymbolsMaximumWaitTime - 최대 대기 시간(분)
string.

이 작업에 실패하기 전에 대기할 시간(분)을 지정합니다.


SymbolsProduct - 제품
string.

에 대한 제품 매개 변수를 symstore.exe지정합니다. 기본값은 $(Build.DefinitionName)입니다.


SymbolsVersion - 버전
string.

버전 매개 변수를 로 지정합니다 symstore.exe. 기본값은 $(Build.BuildNumber)입니다.


SymbolsArtifactName - 아티팩트 이름
string. 기본값은 Symbols_$(BuildConfiguration)입니다.

기호 아티팩트에서 사용할 아티팩트 이름을 지정합니다. FileShare 기호 서버 형식에서만 사용해야 합니다. 기본값은 Symbols_$(BuildConfiguration)입니다.


작업 제어 옵션

모든 작업에는 작업 입력 외에 제어 옵션이 있습니다. 자세한 내용은 컨트롤 옵션 및 일반적인 작업 속성을 참조하세요.

출력 변수

없음

설명

이 작업을 사용하여 소스 코드를 인덱싱하고 파일 공유 또는 Azure Artifacts 기호 서버에 기호를 게시합니다.

소스 코드를 인덱싱하면 기호 파일을 사용하여 애플리케이션을 빌드하는 데 사용한 컴퓨터 이외의 컴퓨터에서 애플리케이션을 디버그할 수 있습니다. 예를 들어 소스 코드가 없는 개발 머신에서 빌드 에이전트가 빌드한 애플리케이션을 디버그할 수 있습니다.

기호 서버를 사용하면 디버거가 제품 이름, 빌드 번호 또는 패키지 이름을 모르고 올바른 기호 파일을 자동으로 검색할 수 있습니다.

중요

인덱스 원본 & 기호 게시 작업을 사용하여 게시된 기호를 삭제하려면 먼저 해당 기호를 생성한 빌드를 삭제해야 합니다. 이 작업은 보존 정책을 사용하거나 실행을 수동으로 삭제하여 수행할 수 있습니다.

인덱싱은 어떻게 작동하나요?

원본을 인덱싱하도록 선택하면 추가 섹션이 PDB 파일에 삽입됩니다. PDB 파일에는 일반적으로 로컬 원본 파일 경로에 대한 참조만 포함됩니다.예: C:\BuildAgent_work\1\src\MyApp\Program.cs. PDB 파일에 삽입된 추가 섹션에는 디버거에 대한 매핑 지침이 포함되어 있습니다. 매핑 정보는 각 로컬 경로에 해당하는 서버 항목을 검색하는 방법을 나타냅니다.

Visual Studio 디버거는 매핑 정보를 사용하여 서버에서 원본 파일을 검색합니다. 원본 파일을 검색하는 실제 명령은 매핑 정보에 포함됩니다. 예제:

tf.exe git view /collection:http://SERVER:8080/tfs/DefaultCollection /teamproject:"93fc2e4d-0f0f-4e40-9825-01326191395d" /repository:"647ed0e6-43d2-4e3d-b8bf-2885476e9c44" /commitId:3a9910862e22f442cd56ff280b43dd544d1ee8c9 /path:"/MyApp/Program.cs" /output:"C:\Users\username\AppData\Local\SOURCE~1\TFS_COMMIT\3a991086\MyApp\Program.cs" /applyfilters

.NET Core 어셈블리에서 만든 이식 가능한 PDB에서 원본 인덱싱을 사용할 수 있나요?

아니요, 하지만 대신 Source Link 사용할 수 있습니다.

기호 보존 기간은 얼마인가요?

기호는 빌드와 연결된 Azure Pipelines에 게시된 빌드와 연결됩니다. 수동으로 또는 보존 정책을 사용하여 빌드를 삭제하면 기호도 삭제됩니다. 기호를 무기한 유지하려면 빌드를 무기한 보존으로 표시합니다.

요구 사항

요구 사항 Description
파이프라인 유형 YAML, 클래식 빌드
실행 중 에이전트, DeploymentGroup
요청 없음
Capabilities 이 작업은 작업의 후속 작업에 대한 요구를 충족하지 않습니다.
명령 제한 사항 모두
Settable 변수 모두
에이전트 버전 2.144.0 이상
작업 범주 빌드
요구 사항 Description
파이프라인 유형 YAML, 클래식 빌드
실행 중 에이전트, DeploymentGroup
요청 없음
Capabilities 이 작업은 작업의 후속 작업에 대한 요구를 충족하지 않습니다.
명령 제한 사항 모두
Settable 변수 모두
에이전트 버전 1.95.0 이상
작업 범주 빌드

추가 정보