Partager via


PublishSymbols@2 - Indexer les sources et publier des symboles v2

Utilisez cette tâche pour indexer votre code source et publier vos symboles sur un partage de fichiers ou un serveur de symboles Azure Artifacts.

L’indexation de votre code source vous permet d’utiliser vos fichiers de symboles pour déboguer votre application sur un ordinateur autre que celui que vous avez utilisé pour générer votre application. Par exemple, vous pouvez déboguer une application générée par un agent de build à partir d’une machine de développement qui n’a pas le code source.

Les serveurs de symboles permettent à votre débogueur de récupérer automatiquement les fichiers de symboles corrects sans connaître les noms de produits, les numéros de build ou les noms de package.

Syntaxe

# 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).

Entrées

SymbolsFolder - dossier Chemin d’accès aux symboles
string. Valeur par défaut : $(Build.SourcesDirectory).

Spécifie le chemin d’accès au dossier recherché avec des fichiers de symboles. La valeur par défaut est $(Build.SourcesDirectory). Sinon, spécifiez un chemin rooté, tel que $(Build.BinariesDirectory)/MyProject.

Remarque

Les chemins UNC ne sont pas pris en charge si vous sélectionnez le serveur de symboles Azure Artifacts comme type de serveur.


SearchPattern - modèle de recherche
string. Obligatoire. Valeur par défaut : **/bin/**/*.pdb.

Spécifie le modèle utilisé pour découvrir les fichiers PDB à publier. Pour plus d’informations, consultez référence des modèles de correspondance de fichier.


Manifest - manifeste
string.

Chemin d’accès à un fichier contenant davantage de clés clientes de symboles à publier.


IndexSources - sources d’index
boolean. Valeur par défaut : true.

Spécifie s’il faut injecter des informations sur le serveur source dans les fichiers PDB. Cette option est uniquement prise en charge sur les agents Windows.


PublishSymbols - Publier des symboles
boolean. Valeur par défaut : true.

Spécifie s’il faut publier les fichiers de symboles.


type de serveur symbole SymbolServerType -
string. Obligatoire lorsque PublishSymbols = true. Valeurs autorisées : TeamServices (Serveur de symboles dans cette organisation/collection (nécessite Azure Artifacts)), FileShare (partage de fichiers).

Spécifie où publier des symboles. Les symboles publiés sur le serveur de symboles Azure Artifacts sont accessibles par n’importe quel utilisateur ayant accès à l’organisation/collection. Azure DevOps Server prend uniquement en charge l’option File share. Consultez les instructions pour Publier des symboles pour le débogage pour utiliser le serveur de symboles dans Azure Artifacts.


chemin d’accès SymbolsPath - pour publier des symboles
string. Optionnel. Utilisez quand PublishSymbols = true && SymbolServerType = FileShare.

Spécifie le partage de fichiers qui héberge vos symboles. Cette valeur est utilisée dans l’appel à symstore.exe add comme paramètre /s. Pour préparer votre magasin de symboles SymStore :

  1. Configurez un dossier sur un serveur de partage de fichiers pour stocker les symboles. Par exemple, configurez \fabrikam-share\symbols.
  2. Accordez l’autorisation de contrôle total au compte de service de l’agent de build .

Si vous laissez cet argument vide, vos symboles seront indexés à la source, mais pas publiés. Vous pouvez également stocker vos symboles avec vos gouttes. consultez publier des artefacts de build.


CompressSymbols - compresser les symboles
boolean. Optionnel. Utilisez quand SymbolServerType = FileShare. Valeur par défaut : false.

Compresse les symboles lors de la publication sur le partage de fichiers.


expiration du symbole SymbolExpirationInDays - (en jours)
string. Optionnel. Utilisez quand PublishSymbols = true && SymbolServerType = TeamServices. Valeur par défaut : 36530.

Spécifie le nombre de jours pendant lesquels les symboles doivent être conservés.


IndexableFileFormats - formats de fichier de symboles pour publier
string. Optionnel. Utilisez quand PublishSymbols = true && SymbolServerType = TeamServices. Valeurs autorisées : Default (ensemble par défaut de symboles à charger), Pdb (seuls les symboles pdb basés sur Pdb et les pdb portables gérés).), SourceMap (seuls les symboles SourceMap javaScript (*.js.map)), All (tous les formats de symboles pris en charge). Valeur par défaut : Default.

Spécifie les formats de débogage à publier sur le serveur de symboles.


DetailedLog - journalisation détaillée
boolean. Valeur par défaut : true.

Spécifie la journalisation détaillée.


TreatNotIndexedAsWarning - Avertir s’il n’est pas indexé
boolean. Valeur par défaut : false.

Spécifie s’il faut avertir si les sources ne sont pas indexées pour un fichier PDB. Sinon, les messages sont enregistrés en tant que sortie normale.


UseNetCoreClientTool - Utiliser l’outil client NetCore
boolean. Valeur par défaut : false.

Spécifie s’il faut utiliser une version de l’outil de chargement de symboles qui prend en charge les fichiers NAIN et ELF. Cette option importe uniquement sur les agents Windows. Sur les agents non-Windows, la version de l’outil de chargement de symboles qui prend en charge les fichiers NAIN et ELF sera toujours utilisée.


SymbolsMaximumWaitTime - durée d’attente maximale (min)
string.

Spécifie le nombre de minutes à attendre avant l’échec de cette tâche.


SymbolsProduct - produit
string.

Spécifie le paramètre de produit à symstore.exe. La valeur par défaut est $(Build.DefinitionName).


SymbolsVersion - version
string.

Spécifie le paramètre de version à symstore.exe. La valeur par défaut est $(Build.BuildNumber).


nom d’artefact SymbolsArtifactName -
string. Valeur par défaut : Symbols_$(BuildConfiguration).

Spécifie le nom de l’artefact à utiliser pour l’artefact de symboles. Cela ne doit être utilisé qu’avec le type de serveur de symboles FileShare. La valeur par défaut est Symbols_$(BuildConfiguration).


Options de contrôle de la tâche

Toutes les tâches ont des options de contrôle en plus de leurs entrées de tâches. Pour plus d’informations, consultez Options de contrôle et propriétés de tâche courantes.

Variables de sortie

Aucun.

Remarques

Utilisez cette tâche pour indexer votre code source et publier vos symboles sur un partage de fichiers ou un serveur de symboles Azure Artifacts.

L’indexation de votre code source vous permet d’utiliser vos fichiers de symboles pour déboguer votre application sur un ordinateur autre que celui que vous avez utilisé pour générer votre application. Par exemple, vous pouvez déboguer une application générée par un agent de build à partir d’une machine de développement qui n’a pas le code source.

Les serveurs de symboles permettent à votre débogueur de récupérer automatiquement les fichiers de symboles corrects sans connaître les noms de produits, les numéros de build ou les noms de package.

Important

Pour supprimer des symboles publiés à l’aide des sources d’index & publier des symboles tâche, vous devez d’abord supprimer la build qui a généré ces symboles. Pour ce faire, utilisez des stratégies de rétention ou en supprimant manuellement l’exécution.

Comment fonctionne l’indexation ?

En choisissant d’indexer les sources, une section supplémentaire sera injectée dans les fichiers PDB. Les fichiers PDB contiennent normalement des références aux chemins d’accès des fichiers sources locaux uniquement par exemple : C :\BuildAgent_work\1\src\MyApp\Program.cs. La section supplémentaire injectée dans le fichier PDB contient des instructions de mappage pour les débogueurs. Les informations de mappage indiquent comment récupérer l’élément serveur correspondant à chaque chemin local.

Le débogueur Visual Studio utilise les informations de mappage pour récupérer le fichier source à partir du serveur. Une commande réelle pour récupérer le fichier source est incluse dans les informations de mappage. Exemple:

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

Puis-je utiliser l’indexation source sur une base de données PDB portable créée à partir d’un assembly .NET Core ?

Non, mais vous pouvez utiliser lien source à la place.

Combien de temps les symboles sont-ils conservés ?

Les symboles sont associés à la build publiée dans Azure Pipelines, elles sont associées à une build. Lorsque la build est supprimée manuellement ou à l’aide de stratégies de rétention, les symboles sont également supprimés. Si vous souhaitez conserver les symboles indéfiniment, marquez la build comme Conserver indéfiniment.

Spécifications

Besoin Descriptif
Types de pipelines YAML, build classique
Exécutions sur Agent, DeploymentGroup
demandes Aucun
fonctionnalités de Cette tâche ne répond à aucune demande de tâches ultérieures dans le travail.
restrictions de commande N'importe quel
variables settables N'importe quel
Version de l’agent 2.144.0 ou version ultérieure
Catégorie de tâche Construire
Besoin Descriptif
Types de pipelines YAML, build classique
Exécutions sur Agent, DeploymentGroup
demandes Aucun
fonctionnalités de Cette tâche ne répond à aucune demande de tâches ultérieures dans le travail.
restrictions de commande N'importe quel
variables settables N'importe quel
Version de l’agent 1.95.0 ou version ultérieure
Catégorie de tâche Construire

Voir aussi