PublishSymbols@2 - 원본 인덱싱 및 기호 v2 작업 게시
이 작업을 사용하여 소스 코드를 인덱싱하고 파일 공유 또는 Azure Artifacts 기호 서버에 기호를 게시합니다.
소스 코드를 인덱싱하면 기호 파일을 사용하여 애플리케이션을 빌드하는 데 사용한 컴퓨터가 아닌 다른 컴퓨터에서 애플리케이션을 디버그할 수 있습니다. 예를 들어 소스 코드가 없는 개발 머신에서 빌드 에이전트로 빌드된 애플리케이션을 디버그할 수 있습니다.
기호 서버를 사용하면 제품 이름, 빌드 번호 또는 패키지 이름을 모르고 디버거가 올바른 기호 파일을 자동으로 검색할 수 있습니다.
구문론
# 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.
#Manifest: # string. Manifest.
#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.
#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).
입력
SymbolsFolder
-
기호 폴더 경로
string
; 기본값은 $(Build.SourcesDirectory)
입니다.
기호 파일을 사용하여 검색되는 폴더의 경로를 지정합니다. 기본값은 $(Build.SourcesDirectory)
입니다. 그렇지 않으면 루트 경로(예: $(Build.BinariesDirectory)/MyProject
)를 지정합니다.
비고
서버 유형으로 Azure Artifacts 기호 서버를 선택하는 경우 UNC 경로가 지원되지 않습니다.
SearchPattern
-
검색 패턴
string
; 필수 사항입니다. 기본값은 **/bin/**/*.pdb
입니다.
게시할 PDB 파일을 검색하는 데 사용되는 패턴을 지정합니다. 자세한 내용은 파일 일치 패턴 참조 참조하세요.
Manifest
-
매니페스트
string
;
게시할 더 많은 기호 클라이언트 키가 포함된 파일의 경로입니다.
IndexSources
-
인덱스 원본
boolean
; 기본값은 true
입니다.
PDB 파일에 원본 서버 정보를 삽입할지 여부를 지정합니다. 이 옵션은 Windows 에이전트에서만 지원됩니다.
PublishSymbols
-
기호 게시
boolean
; 기본값은 true
입니다.
기호 파일을 게시할지 여부를 지정합니다.
SymbolServerType
-
기호 서버 유형
string
;
PublishSymbols = true
때 필요합니다. 허용되는 값: TeamServices
(이 조직/컬렉션의 기호 서버(Azure Artifacts 필요), FileShare
(파일 공유)
기호를 게시할 위치를 지정합니다. Azure Artifacts 기호 서버에 게시된 기호는 조직/컬렉션에 액세스할 수 있는 모든 사용자가 액세스할 수 있습니다. Azure DevOps Server는 File share
옵션만 지원합니다. Azure Artifacts에서 기호 서버를 사용하도록 디버깅하기 위한 기호 게시 지침을 참조하세요.
기호게시하는 SymbolsPath
- 경로
string
; 선택 사항.
PublishSymbols = true && SymbolServerType = FileShare
때 사용합니다.
기호를 호스트하는 파일 공유를 지정합니다. 이 값은 /s
매개 변수로 symstore.exe add
호출에 사용됩니다.
SymStore 기호 저장소를 준비하려면 다음을 수행합니다.
- 기호를 저장할 파일 공유 서버에 폴더를 설정합니다. 예를 들어
\fabrikam-share\symbols
설정합니다. - 빌드 에이전트 서비스 계정모든 권한을 부여합니다.
이 인수를 비워 두면 기호가 원본 인덱싱되지만 게시되지 않습니다. 또한 방울과 함께 기호를 저장할 수 있습니다. 빌드 아티팩트 게시참조하세요.
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에서 원본 인덱싱을 사용할 수 있나요?
아니요, 하지만 원본 링크 대신 사용할 수 있습니다.
기호는 얼마나 오래 보존되는가?
기호는 빌드와 연결된 Azure Pipelines에 게시된 빌드와 연결됩니다. 수동으로 또는 보존 정책을 사용하여 빌드를 삭제하면 기호도 삭제됩니다. 기호를 무기한 유지하려면 빌드를 무기한 보존표시합니다.
요구 사항
요구 사항 | 설명 |
---|---|
파이프라인 유형 | YAML, 클래식 빌드 |
다음에서 실행 | 에이전트, DeploymentGroup |
요구 | 없음 |
기능 | 이 작업은 작업의 후속 작업에 대한 요구 사항을 충족하지 않습니다. |
명령 제한 | 어느 것이든 |
settable 변수 | 어느 것이든 |
에이전트 버전 | 2.144.0 이상 |
작업 범주 | 빌드 |
요구 사항 | 설명 |
---|---|
파이프라인 유형 | YAML, 클래식 빌드 |
다음에서 실행 | 에이전트, DeploymentGroup |
요구 | 없음 |
기능 | 이 작업은 작업의 후속 작업에 대한 요구 사항을 충족하지 않습니다. |
명령 제한 | 어느 것이든 |
settable 변수 | 어느 것이든 |
에이전트 버전 | 1.95.0 이상 |
작업 범주 | 빌드 |
참고하십시오
- 디버깅을 위한 기호 게시
- Visual Studio 사용하여 디버그
- WinDbg 사용하여 디버그