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 기호 저장소를 준비하려면 다음을 수행합니다.
- 파일 공유 서버에 기호를 저장할 폴더를 설정합니다. 예를 들어 를 설정합니다
\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에서 원본 인덱싱을 사용할 수 있나요?
아니요, 하지만 대신 Source Link 사용할 수 있습니다.
기호 보존 기간은 얼마인가요?
기호는 빌드와 연결된 Azure Pipelines에 게시된 빌드와 연결됩니다. 수동으로 또는 보존 정책을 사용하여 빌드를 삭제하면 기호도 삭제됩니다. 기호를 무기한 유지하려면 빌드를 무기한 보존으로 표시합니다.
요구 사항
요구 사항 | Description |
---|---|
파이프라인 유형 | YAML, 클래식 빌드 |
실행 중 | 에이전트, DeploymentGroup |
요청 | 없음 |
Capabilities | 이 작업은 작업의 후속 작업에 대한 요구를 충족하지 않습니다. |
명령 제한 사항 | 모두 |
Settable 변수 | 모두 |
에이전트 버전 | 2.144.0 이상 |
작업 범주 | 빌드 |
요구 사항 | Description |
---|---|
파이프라인 유형 | YAML, 클래식 빌드 |
실행 중 | 에이전트, DeploymentGroup |
요청 | 없음 |
Capabilities | 이 작업은 작업의 후속 작업에 대한 요구를 충족하지 않습니다. |
명령 제한 사항 | 모두 |
Settable 변수 | 모두 |
에이전트 버전 | 1.95.0 이상 |
작업 범주 | 빌드 |