Udostępnij za pośrednictwem


PublishSymbols@2 — indeksowanie źródeł i publikowanie symboli w wersji 2

To zadanie służy do indeksowania kodu źródłowego i publikowania symboli w udziale plików lub serwerze symboli usługi Azure Artifacts.

Indeksowanie kodu źródłowego umożliwia debugowanie aplikacji na maszynie innej niż używana do kompilowania aplikacji przy użyciu plików symboli. Można na przykład debugować aplikację utworzoną przez agenta kompilacji z maszyny deweloperów, która nie ma kodu źródłowego.

Serwery symboli umożliwiają debugerowi automatyczne pobieranie prawidłowych plików symboli bez znajomości nazw produktów, numerów kompilacji lub nazw pakietów.

Składnia

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

Dane wejściowe

SymbolsFolder - ścieżka do folderu symboli
string. Wartość domyślna: $(Build.SourcesDirectory).

Określa ścieżkę do folderu, który jest wyszukiwany z plikami symboli. Wartość domyślna to $(Build.SourcesDirectory). W przeciwnym razie określ ścieżkę rooted, taką jak $(Build.BinariesDirectory)/MyProject.

Uwaga

Ścieżki UNC nie są obsługiwane, jeśli jako typ serwera wybierzesz serwer symboli usługi Azure Artifacts.


SearchPattern - wzorzec wyszukiwania
string. To jest wymagane. Wartość domyślna: **/bin/**/*.pdb.

Określa wzorzec używany do odnajdywania plików PDB do opublikowania. Aby uzyskać więcej informacji, zobacz Odwołania do wzorców dopasowywania plików.


Manifest - manifestu
string.

Ścieżka do pliku zawierającego więcej kluczy klienta symboli do opublikowania.


źródła indeksów IndexSources -
boolean. Wartość domyślna: true.

Określa, czy należy wstrzyknąć informacje o serwerze źródłowym do plików PDB. Ta opcja jest obsługiwana tylko w agentach systemu Windows.


PublishSymbols - Publikuj symbole
boolean. Wartość domyślna: true.

Określa, czy opublikować pliki symboli.


SymbolServerType - typ serwera symboli
string. Wymagane, gdy PublishSymbols = true. Dozwolone wartości: TeamServices (serwer symboli w tej organizacji/kolekcji (wymaga usługi Azure Artifacts)), FileShare (udział plików).

Określa miejsce publikowania symboli. Symbole opublikowane na serwerze symboli usługi Azure Artifacts są dostępne dla każdego użytkownika z dostępem do organizacji/kolekcji. Usługa Azure DevOps Server obsługuje tylko opcję File share. Zobacz instrukcje dotyczące Publikowanie symboli na potrzeby debugowania używania serwera symboli w usłudze Azure Artifacts.


SymbolsPath - ścieżka do publikowania symboli
string. Opcjonalny. Użyj polecenia , gdy PublishSymbols = true && SymbolServerType = FileShare.

Określa udział plików hostujący symbole. Ta wartość będzie używana w wywołaniu , aby symstore.exe add jako parametr /s. Aby przygotować magazyn symboli SymStore:

  1. Skonfiguruj folder na serwerze udostępniania plików, aby przechowywać symbole. Na przykład skonfiguruj \fabrikam-share\symbols.
  2. Udziel uprawnienia pełnej kontroli do konta usługi agenta kompilacji .

Jeśli ten argument pozostanie pusty, symbole będą indeksowane w źródle, ale nie zostaną opublikowane. Symbole można również przechowywać ze spadkami. zobacz Publikowanie artefaktów kompilacji.


CompressSymbols - Kompresuj symbole
boolean. Opcjonalny. Użyj polecenia , gdy SymbolServerType = FileShare. Wartość domyślna: false.

Kompresuje symbole podczas publikowania w udziale plików.


SymbolExpirationInDays - wygaśnięcie symboli (w dniach)
string. Opcjonalny. Użyj polecenia , gdy PublishSymbols = true && SymbolServerType = TeamServices. Wartość domyślna: 36530.

Określa liczbę dni, w których symbole powinny być zachowywane.


formaty plików symboli IndexableFileFormats - do publikowania
string. Opcjonalny. Użyj polecenia , gdy PublishSymbols = true && SymbolServerType = TeamServices. Dozwolone wartości: Default (domyślny zestaw symboli do przekazania), Pdb (tylko symbole pdb systemu Windows i zarządzane przenośne pliki pdb), SourceMap (tylko symbole źródłowe oparte na języku JavaScript (*.js.map)), All (wszystkie obsługiwane formaty symboli). Wartość domyślna: Default.

Określa, które formaty debugowania mają być publikowane na serwerze symboli.


DetailedLog - pełne rejestrowanie
boolean. Wartość domyślna: true.

Określa pełne rejestrowanie.


TreatNotIndexedAsWarning - ostrzegaj, jeśli nie indeksowane
boolean. Wartość domyślna: false.

Określa, czy należy ostrzegać, czy źródła nie są indeksowane dla pliku PDB. W przeciwnym razie komunikaty są rejestrowane jako normalne dane wyjściowe.


UseNetCoreClientTool - używanie narzędzia klienckiego NetCore
boolean. Wartość domyślna: false.

Określa, czy używać wersji narzędzia przekazywania symboli obsługującego pliki DWARF i ELF. Ta opcja ma znaczenie tylko w przypadku agentów systemu Windows. W przypadku agentów innych niż Windows będzie zawsze używana wersja narzędzia przekazywania symboli, które obsługuje pliki DWARF i ELF.


SymbolsMaximumWaitTime - maksymalny czas oczekiwania (min)
string.

Określa liczbę minut oczekiwania przed niepowodzeniem tego zadania.


SymbolsProduct - Product
string.

Określa parametr produktu do symstore.exe. Wartość domyślna to $(Build.DefinitionName).


SymbolsVersion - wersja
string.

Określa parametr wersji symstore.exe. Wartość domyślna to $(Build.BuildNumber).


SymbolsArtifactName - Nazwa artefaktu
string. Wartość domyślna: Symbols_$(BuildConfiguration).

Określa nazwę artefaktu do użycia dla artefaktu symboli. Powinno to być używane tylko z typem serwera symboli FileShare. Wartość domyślna to Symbols_$(BuildConfiguration).


Opcje sterowania zadaniami

Wszystkie zadania mają opcje sterowania oprócz danych wejściowych zadań podrzędnych. Aby uzyskać więcej informacji, zobacz opcje kontroli i typowe właściwości zadań.

Zmienne wyjściowe

Żaden.

Uwagi

To zadanie służy do indeksowania kodu źródłowego i publikowania symboli w udziale plików lub serwerze symboli usługi Azure Artifacts.

Indeksowanie kodu źródłowego umożliwia debugowanie aplikacji na maszynie innej niż używana do kompilowania aplikacji przy użyciu plików symboli. Można na przykład debugować aplikację utworzoną przez agenta kompilacji z maszyny deweloperów, która nie ma kodu źródłowego.

Serwery symboli umożliwiają debugerowi automatyczne pobieranie prawidłowych plików symboli bez znajomości nazw produktów, numerów kompilacji lub nazw pakietów.

Ważne

Aby usunąć symbole opublikowane przy użyciu źródeł indeksu & publikowanie symboli zadania, należy najpierw usunąć kompilację, która wygenerowała te symbole. Można to zrobić przy użyciu zasad przechowywania lub ręcznie usunięciaprzebiegu .

Jak działa indeksowanie?

Po wybraniu indeksowania źródeł do plików PDB zostanie wstrzyknięta dodatkowa sekcja. Pliki PDB zwykle zawierają odwołania do lokalnych ścieżek plików źródłowych, na przykład: C:\BuildAgent_work\1\src\MyApp\Program.cs. Dodatkowa sekcja wstrzyknięta do pliku PDB zawiera instrukcje mapowania debugerów. Informacje o mapowaniu wskazują sposób pobierania elementu serwera odpowiadającego każdej ścieżce lokalnej.

Debuger programu Visual Studio użyje informacji o mapowaniu, aby pobrać plik źródłowy z serwera. Rzeczywiste polecenie pobierania pliku źródłowego znajduje się w informacjach o mapowaniu. Przykład:

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

Czy można używać indeksowania źródłowego na przenośnym pliku PDB utworzonym na podstawie zestawu platformy .NET Core?

Nie, ale zamiast tego można użyć linku źródłowego.

Jak długo są zachowywane symbole?

Symbole są skojarzone z kompilacją opublikowaną w usłudze Azure Pipelines, która jest skojarzona z kompilacją. Po usunięciu kompilacji ręcznie lub przy użyciu zasad przechowywania symbole również zostaną usunięte. Jeśli chcesz zachować symbole na czas nieokreślony, oznacz kompilację jako Zachowaj w nieskończoność.

Wymagania

Wymaganie Opis
Typy potoków YAML, klasyczna kompilacja
Działa na Agent, DeploymentGroup
Wymagania Żaden
możliwości To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu.
ograniczenia poleceń Jakikolwiek
zmienne ustawiane Jakikolwiek
Wersja agenta 2.144.0 lub nowsza
Kategoria zadań Zbuduj
Wymaganie Opis
Typy potoków YAML, klasyczna kompilacja
Działa na Agent, DeploymentGroup
Wymagania Żaden
możliwości To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu.
ograniczenia poleceń Jakikolwiek
zmienne ustawiane Jakikolwiek
Wersja agenta 1.95.0 lub nowsza
Kategoria zadań Zbuduj

Zobacz też