Veröffentlichen von Symbolen zum Debuggen

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 – TFS 2017

Mit Azure Pipelines können Sie Ihre Symbole mithilfe der Aufgabe Azure Artifacts Quellen und Symbole veröffentlichen auf einem Symbolserver veröffentlichen. Sie können den Debugger verwenden, um eine Verbindung herzustellen und automatisch die richtigen Symboldateien abzurufen, ohne Produktnamen, Buildnummern oder Paketnamen zu kennen. Mit Azure Pipelines können Sie Ihre Symbole auch in Dateifreigaben und portablen PDBs veröffentlichen.

Hinweis

Die Aufgabe Indexquellen und Symbole veröffentlichen wird in Releasepipelines nicht unterstützt.

Veröffentlichen von Symbolen auf Azure Artifacts Symbolserver

Um Ihre Symbole auf dem symbol Azure Artifacts server zu veröffentlichen, können Sie den Task Symbole veröffentlichen von Indexquellen verwenden.

  1. Wählen Sie in Ihrer Pipelinedefinition aus, + um eine neue Aufgabe hinzuzufügen.

  2. Suchen Sie nach der Aufgabe Indexquellen und Veröffentlichen von Symbolen. Wählen Sie Hinzufügen aus, um es Ihrer Pipeline hinzuzufügen.

    Screenshot showing how to add the index sources and publish symbols to the current pipeline

  3. Füllen Sie die erforderlichen Felder wie folgt aus:

    Screenshot showing the index sources and publish symbols task to publish symbols to Azure Artifacts symbol server

  • Taskversion:2.\*.
  • Taskversion:1.\*.
  • Anzeigename:Anzeigename der Aufgabe.

  • Pfad zum Ordner symbols:Pfad zu dem Ordner, der die Symboldateien hostet.

  • Suchmuster:Das Muster, mit dem die PDB-Dateien in dem Ordner gesucht werden, den Sie unter Pfad zum Symbolordner angegeben haben. Platzhalter für einzelne Ordner ( ) und rekursive Platzhalter * ( ) werden ** unterstützt. Beispiel: *\bin**.pdb sucht nach allen PDB-Dateien in allen Bin-Unterverzeichnissen.

  • Indexquellen:Gibt an, ob Quellserverinformationen in die PDB-Dateien injiziert werden.

  • Symbole veröffentlichen:Gibt an, ob die Symboldateien veröffentlicht werden.

    • Symbolservertyp:Wählen Sie Symbolserver in dieser Organisation/Sammlung aus (erfordert Azure Artifacts), um Ihre Symbole auf dem Azure Artifacts zu veröffentlichen.
  • Ausführliche Protokollierung:Überprüfen Sie, ob Weitere Informationen in Ihre Protokolle enthalten sind.

Veröffentlichen von Symbolen in einer Dateifreigabe

Abgesehen Azure Artifacts Symbolservers können Sie Ihre Symbole auch in einer Dateifreigabe veröffentlichen, indem Sie die Aufgabe Indexquellen und Symbole veröffentlichen verwenden.

  1. Wählen Sie in Ihrer Pipelinedefinition aus, + um eine neue Aufgabe hinzuzufügen.

  2. Suchen Sie nach der Aufgabe Indexquellen und Veröffentlichen von Symbolen. Wählen Sie Hinzufügen aus, um es Ihrer Pipeline hinzuzufügen.

    Screenshot showing how to add the index sources and publish symbols to the current pipeline

  3. Füllen Sie die erforderlichen Felder wie folgt aus:

    Screenshot showing the index sources and publish symbols task to publish symbols to a file share

  • Taskversion:2.\*.
  • Taskversion:1.\*.
  • Anzeigename:Anzeigename der Aufgabe.

  • Pfad zum Ordner symbols:Pfad zu dem Ordner, der die Symboldateien hostet.

  • Suchmuster:Das Muster, mit dem die PDB-Dateien in dem Ordner gesucht werden, den Sie unter Pfad zum Symbolordner angegeben haben.

  • Indexquellen:Gibt an, ob Quellserverinformationen in die PDB-Dateien injiziert werden.

  • Symbole veröffentlichen:Gibt an, ob die Symboldateien veröffentlicht werden.

    • Symbolservertyp:Wählen Sie Dateifreigabe aus, um Ihre Symbole in einer Dateifreigabe zu veröffentlichen.
    • Pfad zum Veröffentlichen von Symbolen:die Dateifreigabe, die Ihre Symbole hosten soll.
  • Ausführliche Protokollierung:Überprüfen Sie, ob Weitere Informationen in Ihre Protokolle enthalten sind.

Veröffentlichen portabler PDBs auf Azure Artifacts Symbolserver

Portable PDBs sind Symboldateien, die auf allen Plattformen erstellt und verwendet werden können, im Gegensatz zu herkömmlichen PDBs, die nur auf Windows werden. Wenn Sie portable PDBs verwenden, müssen Sie weiterhin die Aufgabe Indexquellen und Symbole veröffentlichen verwenden, um Ihre Symbole zu veröffentlichen. Bei portablen PDBs führt der Build die Indizierung durch. Sie sollten jedoch SourceLink verwenden, um die Symbole als Teil Ihrer Pipeline zu indizieren.

Quelllink ist ein Satz von Tools, mit denen Entwickler ihren Quellcode debuggen können, indem sie die .NET-Assemblys wieder dem Quellcode zuordnen. Sehen Sie sich das Repository dotnet/sourcelink GitHub an, um mehr über die verschiedenen enthaltenen Pakete zu erfahren.

  • Fügen Sie für projekte, GitHub gehostet werden, Microsoft.SourceLink.GitHub den Paketverweis zu Ihrer Projektdatei hinzu.

    <ItemGroup>
      <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All"/>
    </ItemGroup>
    
  • Fügen Sie für projekte, Azure Repos gehostet werden, Microsoft.SourceLink.AzureRepos.Git den Paketverweis zu Ihrer Projektdatei hinzu.

    <ItemGroup>
      <PackageReference Include="Microsoft.SourceLink.AzureRepos.Git" Version="1.0.0" PrivateAssets="All"/>
    </ItemGroup>
    
  • Fügen Sie für projekte, Azure DevOps Server gehostet werden, Microsoft.SourceLink.AzureDevOpsServer.Git den Paketverweis zu Ihrer Projektdatei hinzu.

    <ItemGroup>
      <PackageReference Include="Microsoft.SourceLink.AzureDevOpsServer.Git" Version="1.0.0" PrivateAssets="All"/>
    </ItemGroup>
    

Einrichten der Buildaufgabe

Der nächste Schritt besteht darin, die Buildaufgabe in Ihrer Pipeline zu ändern, um Source Link während des Buildprozesses auf aufruft.

  1. Wählen Sie in Ihrer Pipelinedefinition den Task Projektmappe erstellen aus. Sie können nach der Buildaufgabe Visual Studio pipeline hinzufügen, falls sie noch nicht vorhanden ist.

  2. Fügen Sie den folgenden Codeausschnitt zu den MSBuild hinzu.

    /p:SourceLinkCreate=true
    
  3. Wählen Sie Warteschlange speichern aus, wenn Sie fertig sind.

    MSBuild arguments in the build solution task

Einrichten der Veröffentlichungsaufgabe

Der Task Symbole für die Veröffentlichung von Indexquellen wird verwendet, um Ihren Quellcode zu indizieren und Ihre Symbole auf dem & Azure Artifacts zu veröffentlichen. Da wir die Visual Studio verwenden, um die Quelle zu indizieren, deaktivieren wir die Indizierung in der Veröffentlichungsaufgabe.

  1. Wählen Sie in Ihrer Pipelinedefinition aus, + um eine neue Aufgabe hinzuzufügen.

  2. Suchen Sie nach der Aufgabe Indexquellen und Veröffentlichen von Symbolen. Wählen Sie Hinzufügen aus, um es Ihrer Pipeline hinzuzufügen.

    Screenshot showing how to add the index sources and publish symbols to the current pipeline

  3. Füllen Sie die erforderlichen Felder wie folgt aus:

    Screenshot showing how to configure the publish task to publish symbols to Azure Artifacts symbol server

  • Taskversion:2.\*.
  • Taskversion:1.\*.
  • Indexquellen:Deaktivieren Sie die Option, um die Indizierung zu deaktivieren. Die Indizierung erfolgt während des Buildings. Weitere Informationen finden Sie im vorherigen Schritt.

  • Symbole veröffentlichen:Gibt an, ob die Symboldateien veröffentlicht werden.

    • Symbolservertyp:Wählen Sie Symbolserver in dieser Organisation/Sammlung aus (erfordert Azure Artifacts), um Ihre Symbole auf dem Azure Artifacts zu veröffentlichen.

Einrichten von Visual Studio

Bevor wir mit der Nutzung unserer Symbole Azure Artifacts Symbolserver beginnen, stellen wir sicher, dass Visual Studio ordnungsgemäß eingerichtet ist:

  1. Wählen Visual Studio Tools und dann Optionen aus.

  2. Wählen Sie im Menü Debuggen die Option Symbole aus.

  3. Wählen Sie das + Vorzeichen aus, um einen neuen Symbolserverspeicherort hinzuzufügen.

    Screenshot showing how to add a new symbol server location

  4. Ein neues Dialogfeld wird geöffnet, wählen Sie Ihr Konto aus dem Dropdownmenü aus, und wählen Sie dann die Organisation aus, mit der Sie eine Verbindung herstellen möchten. Wählen Verbinden, wenn Sie fertig sind.

  5. Wählen Sie im gleichen Abschnitt Debuggen die Option Allgemein aus. Scrollen Sie nach unten, und aktivieren Sie Quelllinkunterstützung aktivieren, um die Unterstützung für portable PDBs zu aktivieren.

    Enable source link support

Hinweis

Wenn Sie die Option Quellserverunterstützung aktivieren, können Sie den Quellserver verwenden, wenn kein Quellcode auf dem lokalen Computer verfügbar ist oder die Symboldatei nicht mit dem Quellcode übereinstimmen. Wenn Sie das Debuggen von Quellcode von Drittanbietern aktivieren möchten, deaktivieren Sie das Kontrollkästchen Nur eigenen Code aktivieren.

Wichtig

Um Symbole zu löschen, die mithilfe der Aufgabe Symbole für die Veröffentlichung von Indexquellen veröffentlicht wurden, müssen Sie zuerst den Build löschen, der diese Symbole generiert hat. Dies kann mithilfe von Aufbewahrungsrichtlinien oder durch manuelles Löschen der Ausführung von erreicht werden.

Häufig gestellte Fragen

F: Wie lange werden Symbole aufbewahrt?

A: Eine Symboldatei hat denselben Aufbewahrungszeitraum wie der Build, der sie generiert hat. Wenn Sie einen Build entweder manuell oder mithilfe von Aufbewahrungsrichtlinien löschen, werden auch die Symbole gelöscht, die von diesem Build generiert wurden.

F: Kann ich die Quellindizierung für eine portable PDB verwenden, die aus einer .NET Core-Assembly generiert wurde?

A: Dies ist derzeit nicht möglich. Die Quellindizierung wird für portable PDBs derzeit nicht unterstützt. Es wird empfohlen, den Build für die Indizierung zu konfigurieren.