Hata ayıklama için sembolleri yayımlama

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

Bu Azure Pipelines, Dizin kaynakları ve sembolleri Azure Artifacts kullanarak sembollerinizi sembol sunucusunda yayımlayın. Ürün adlarını, derleme numaralarını veya paket adlarını bilmeden bağlanmak ve doğru sembol dosyalarını otomatik olarak almak için hata ayıklayıcıyı kullanabilirsiniz. Bu Azure Pipelines kullanarak, sembollerinizi dosya paylaşımları ve taşınabilir PDB'ler üzerinde de yayımlayın.

Not

Dizin kaynakları ve yayımlama sembolleri görevi yayın işlem hatlarında desteklenmiyor.

Sembol sunucusunda Azure Artifacts yayımlama

Sembollerinizi semboller sunucusuna Azure Artifacts için Dizin Kaynakları Sembolleri Yayımla görevini kullanabilirsiniz.

  1. İşlem hattı tanımından yeni + bir görev eklemek için öğesini seçin.

  2. Dizin kaynakları ve sembolleri yayımlama görevini arama. İşlem hattınıza eklemek için Ekle'yi seçin.

    Dizin kaynaklarını ekleme ve geçerli işlem hattına sembol yayımlamayı gösteren ekran görüntüsü

  3. Gerekli alanları aşağıdaki gibi doldurun:

    Sembol sunucusuna sembol yayımlamak için dizin kaynaklarını ve sembolleri yayımlama Azure Artifacts ekran görüntüsü

  • Görev sürümü:2.\*.
  • Görev sürümü:1.\*.
  • Görünen ad:görev görünen adı.

  • Semboller klasörünün yolu:sembol dosyalarını barındıran klasörün yolu.

  • Arama düzeni:Sembollerin yolu klasöründe belirttiğiniz klasörde pdb dosyalarını bulmak için kullanılan desen. Tek klasörli joker karakterler ( * ) ve tekrarlayan joker karakterler ( ** ) de destekledik. Örnek: *\bin**.pdb, tüm bin alt dizinlerinde tüm .pdb dosyalarını arar.

  • Dizin kaynakları:PDB dosyalarına kaynak sunucu bilgileri eklemenin gerekip gerek olmadığını gösterir.

  • Sembolleri yayımla: sembol dosyalarının yayımlanıp yayımlanmayrı olduğunu gösterir.

    • Sembol sunucusu türü:Sembol sunucularında sembollerinizi yayımlamak için bu kuruluşta/koleksiyonda Sembol Sunucusu'Azure Artifacts (Azure Artifacts Azure Artifacts gerekir) seçin.
  • Ayrıntılı günlük kaydı:Günlüklere daha fazla bilgi eklemek için kontrol edin.

Dosya paylaşımında sembol yayımlama

Sembol Azure Artifacts dışında, Dizin Kaynakları ve Sembolleri Yayımla görevini kullanarak sembollerinizi bir dosya paylaşımında da yayımlayın.

  1. İşlem hattı tanımından yeni + bir görev eklemek için öğesini seçin.

  2. Dizin kaynakları ve sembolleri yayımlama görevini arama. İşlem hattınıza eklemek için Ekle'yi seçin.

    Dizin kaynaklarını ekleme ve geçerli işlem hattına sembol yayımlamayı gösteren ekran görüntüsü

  3. Gerekli alanları aşağıdaki gibi doldurun:

    Bir dosya paylaşımında sembol yayımlamak için dizin kaynaklarını ve sembolleri yayımlama görevini gösteren ekran görüntüsü

  • Görev sürümü:2.\*.
  • Görev sürümü:1.\*.
  • Görünen ad:görev görünen adı.

  • Semboller klasörünün yolu:sembol dosyalarını barındıran klasörün yolu.

  • Arama düzeni:Sembollerin yolu klasöründe belirttiğiniz klasörde pdb dosyalarını bulmak için kullanılan desen.

  • Dizin kaynakları:PDB dosyalarına kaynak sunucu bilgileri eklemenin gerekip gerek olmadığını gösterir.

  • Sembolleri yayımla: sembol dosyalarının yayımlanıp yayımlanmayrı olduğunu gösterir.

    • Sembol sunucusu türü:Sembollerinizi bir dosya paylaşımında yayımlamak için Dosya paylaşımı'yı seçin.
    • Sembolleri yayımlama yolu:simgelerinizi barındıracak dosya paylaşımı.
  • Ayrıntılı günlük kaydı:Günlüklere daha fazla bilgi eklemek için kontrol edin.

Taşınabilir PDB'leri Azure Artifacts sunucusuna yayımlama

Taşınabilir PDB'ler, yalnızca tek bir platformda kullanılan geleneksel PDB'lere göre tüm platformlarda oluşturulabilir ve Windows dosyalardır. Taşınabilir PDB'ler kullanıyorsanız, yine de sembollerinizi yayımlamak için Dizin Kaynakları ve Sembolleri Yayımla görevini kullansanız gerekir. Taşınabilir PDB'ler için derleme dizinleme yapar, ancak sembolleri işlem hattınız kapsamında dizine almak için SourceLink'i kullanmalıdır.

Kaynak bağlantı, geliştiricilerin .NET derlemelerinden kaynak koda geri eşleerek kaynak kodlarında hata ayıklamasına olanak sağlayan bir araç kümesidir. Dahil edilen farklı paketler hakkında bilgi edinmek için GitHub dotnet/sourcelink bağlantısına göz atabilirsiniz.

  • Konakta barındırılan GitHub proje Microsoft.SourceLink.GitHub dosyanıza paket başvurularını ekleyin.

    <ItemGroup>
      <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="All"/>
    </ItemGroup>
    
  • Konakta barındırılan Azure Repos proje Microsoft.SourceLink.AzureRepos.Git dosyanıza paket başvurularını ekleyin.

    <ItemGroup>
      <PackageReference Include="Microsoft.SourceLink.AzureRepos.Git" Version="1.0.0" PrivateAssets="All"/>
    </ItemGroup>
    
  • Konakta barındırılan Azure DevOps Server proje Microsoft.SourceLink.AzureDevOpsServer.Git dosyanıza paket başvurularını ekleyin.

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

Derleme görevini ayarlama

Sonraki adım, derleme işlemi sırasında Kaynak Bağlantısını çağırmak için işlem hattında derleme görevini değiştirmektir.

  1. İşlem hattı tanımından Çözüm oluşturma görevini seçin. Henüz yoksa, Visual Studio derleme görevini arayabilir ve işlem hattınıza ebilirsiniz.

  2. Aşağıdaki kod parçacığını bağımsız değişkenlerini MSBuild ekleyin.

    /p:SourceLinkCreate=true
    
  3. Bitirerek kuyruğu kaydet'i seçin.

    MSBuild çözümü görevine bağımsız değişkenleri yeniden oluşturma

Yayımlama görevini ayarlama

Kaynak kodunuzu dizine ekleme ve sembollerinizi semboller sunucusuna yayımlamak için Dizin Kaynaklarını & Azure Artifacts görevi kullanılır. Kaynağımızı dizine oluşturmak Visual Studio derleme görevini kullanıyoruz, yayımlama görevsinde dizin oluşturma özelliğini devre dışı bırakmayacak.

  1. İşlem hattı tanımından yeni + bir görev eklemek için öğesini seçin.

  2. Dizin kaynakları ve sembolleri yayımlama görevini arama. İşlem hattınıza eklemek için Ekle'yi seçin.

    Dizin kaynaklarını ekleme ve geçerli işlem hattına sembol yayımlamayı gösteren ekran görüntüsü

  3. Gerekli alanları aşağıdaki gibi doldurun:

    Yayımlama görevini sembol sunucusunda sembolleri yayımlamak üzere yapılandırmayı Azure Artifacts ekran görüntüsü

  • Görev sürümü:2.\*.
  • Görev sürümü:1.\*.
  • Dizin kaynakları:Dizin oluşturma özelliğini devre dışı bırakmak için işaretini kaldırın. Dizin oluşturma derleme sırasında yapılır. Diğer ayrıntılar için önceki adıma bakın.

  • Sembolleri yayımla: sembol dosyalarının yayımlanıp yayımlanmayrı olduğunu gösterir.

    • Sembol sunucusu türü:Sembol sunucularında sembollerinizi yayımlamak için bu kuruluşta/koleksiyonda Sembol Sunucusu'Azure Artifacts (Azure Artifacts Azure Artifacts gerekir) seçin.

Visual Studio'yu ayarlama

Sembol sunucularından sembollerimizi Azure Artifacts başlamadan önce, Visual Studio doğru şekilde Visual Studio olun:

  1. Bu Visual Studio Araçlar'ı ve ardından Seçenekler'iseçin.

  2. Hata Ayıklama menüsünden Semboller'i seçin.

  3. Yeni bir + sembol sunucusu konumu eklemek için işareti seçin.

    Yeni sembol sunucusu konumu eklemeyi gösteren ekran görüntüsü

  4. Yeni bir iletişim kutusu açılır, açılan menüden hesabınız ve ardından bağlanmak istediğiniz kuruluşu seçin. Bitir Bağlan'yi seçin.

  5. Aynı Hata Ayıklama bölümünden Genel'i seçin. Aşağı kaydırın ve Taşınabilir PDB desteğini etkinleştirmek için Kaynak Bağlantısını Etkinleştir desteğini kontrol edin.

    Kaynak bağlantı desteğini etkinleştirme

Not

Kaynak sunucu desteğini etkinleştir seçeneğinin işaret olması, yerel makinede kaynak kod yoksa veya sembol dosyası kaynak kodla eşleşmezse Kaynak Sunucuyu kullanmana olanak sağlar. Üçüncü taraf kaynak kodunda hata ayıklamayı etkinleştirmek için Etkinleştir onay kutusunun Yalnızca kendi kodum kaldırın.

Önemli

Dizin Kaynakları Sembolleri Yayımla görevi kullanılarak yayımlanan sembolleri silmek için önce bu sembolleri oluşturan derlemeyi silmeniz gerekir. Bu, bekletme ilkeleri kullanılarak veya çalıştırmayı el ile silerek gerçek olabilir.

SSS

S: Semboller ne kadar süreyle korunur?

A: Sembol dosyası, onu oluşturan derlemeyle aynı saklama süresine sahiptir. Bir derlemeyi el ile sildikten veya bekletme ilkelerini kullanarak sildikten sonra, bu derleme tarafından oluşturulan semboller de silinir.

S: Bir .NET Core derlemesi tarafından oluşturulan taşınabilir PDB'de kaynak dizini oluşturma kullanabilir miyim?

A: Şu anda bu mümkün değildir. Kaynak dizin oluşturma şu anda taşınabilir PDB'ler için desteklenmiyor. Önerilen yaklaşım, derlemenizi dizin oluşturma yapacak şekilde yapılandırmak olacaktır.