PublishSymbols@2 — индексирование источников и публикация символов версии 2
Используйте эту задачу для индексирования исходного кода и публикации символов в общей папке или на сервере символов 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
.
Примечание.
UNC-пути не поддерживаются, если в качестве типа сервера-сервера символов Azure Artifacts выбран сервер символов Azure.
шаблона поиска 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.
Путь 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).) SourceMap
(Только символы Исходного карты на основе JavaScript (*.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
Можно ли использовать индексирование источника для переносимой PDB, созданной из сборки .NET Core?
Нет, но вместо этого можно использовать исходный канал.
Сколько времени хранятся символы?
Символы связаны со сборкой, опубликованной в Azure Pipelines, связанной со сборкой. При удалении сборки вручную или с помощью политик хранения символы также удаляются. Если вы хотите сохранить символы на неопределенный срок, пометьте сборку как сохранить неограниченное.
Требования
Требование | Описание |
---|---|
Типы конвейеров | YAML, классическая сборка |
Выполняется в | Агент, DeploymentGroup |
требования | Нет |
возможностей | Эта задача не удовлетворяет требованиям к последующим задачам в задании. |
ограничения команд | Любое |
переменные settable | Любое |
Версия агента | 2.144.0 или более поздней версии |
Категория задач | Строить |
Требование | Описание |
---|---|
Типы конвейеров | YAML, классическая сборка |
Выполняется в | Агент, DeploymentGroup |
требования | Нет |
возможностей | Эта задача не удовлетворяет требованиям к последующим задачам в задании. |
ограничения команд | Любое |
переменные settable | Любое |
Версия агента | 1.95.0 или более поздней версии |
Категория задач | Строить |
См. также
- публикации символов для отладки
- отладка с помощью Visual Studio
- отладка с помощью WinDbg