このタスクを使用して、ソース コードのインデックスを作成し、シンボルをファイル共有または 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
するときに使用します。
シンボルをホストするファイル共有を指定します。 この値は、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
(Windows pdb およびマネージドポータブル 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 |
の需要 | なし |
機能の | このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。 |
コマンドの制限 | どれでも |
設定可能な変数 | どれでも |
エージェントのバージョン | 2.144.0 以上 |
タスク カテゴリ | 建築する |
要件 | 説明 |
---|---|
パイプラインの種類 | YAML、クラシック ビルド |
実行日 | エージェント、DeploymentGroup |
の需要 | なし |
機能の | このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。 |
コマンドの制限 | どれでも |
設定可能な変数 | どれでも |
エージェントのバージョン | 1.95.0 以上 |
タスク カテゴリ | 建築する |
こちらもご覧ください
- をデバッグするためのシンボルを発行する
- Visual Studio を使用したデバッグの
- WinDbg を使用したデバッグの