VS Code’da MSBuild Binlog’ları Copilot ile Analiz Etme
CI kırmızıya döndüğünde ya da dün 8 saniyede biten bir derleme bugün 40 saniye sürdüğünde, MSBuild çıktısı içinde işe yarayacak tek satırı aramak yorucu bir hâl alıyor. Aslında ihtiyacınız olan bilgi neredeyse her zaman .binlog dosyasının içinde: her proje, hedef, görev, özellik ve tanılama kaydediliyor. Ancak bu dosyayı okumak şimdiye kadar ayrı bir görüntüleyici açmayı ve nereye bakacağınızı önceden bilmeyi gerektiriyordu.
Microsoft’un MSBuild Binlog Analyzer eklentisi bu noktada devreye giriyor. Visual Studio Marketplace üzerinde Preview olarak yayımlanan eklenti, binlog analizini doğrudan editörünüze taşıyor ve zahmetli detektiflik işini GitHub Copilot Chat‘e devrediyor.
Etkileşimli, editör içi deneyime odaklanan bu eklentinin yanında, aynı analiz motorunu başsız (headless) çalıştıran Binlog MCP Server tarafı da mevcut; CI içinde bir ajanın derlemeleri kendi başına incelemesini istiyorsanız oraya bakmak mantıklı.
Çözdüğü Problemler
Build günlükleri elinizdeki en iyi kanıt ama okuması bir o kadar zahmetli. Binlog Analyzer bu kanıtları doğrudan cevaba dönüştürüyor:
- “Neden derleme başarısız oldu?” NuGet restore gürültüsü içinde kaybolmak yerine düz bir dille kök neden ve VS Code içinde tek tıkla uygulanabilen bir düzeltme sunuluyor.
- “Neden bu kadar yavaş?” En yavaş hedef ve görevler sıralanıyor, derleme süresini asıl belirleyen kritik yol vurgulanıyor.
- “Ne değişti?” İki derleme yan yana karşılaştırılıyor; süre, tanılama, özellik ve paket sürümü farkları kalem kalem çıkarılıyor. “Sanki yavaşladı” hissi, “CoreCompile 14.7 saniye geriledi” gibi ölçülebilir bir bulguya dönüşüyor.
- “Incremental build çalışıyor mu?” Hangi hedeflerin yeniden derlendiğini ve nedenini tahmine kalmadan görüyorsunuz.
Nasıl Çalışıyor?
Eklenti, kaputun altında Microsoft.AITools.BinlogMcp adlı bir.NET global tool MCP sunucusuyla eşleşiyor. Bu sunucu, Model Context Protocol üzerinden düzinelerce build analiz aracını dışa açıyor. Copilot bu araçları çağırarak cevaplarını gerçek log verisine dayandırıyor, yani tahmine değil kanıta bakıyor. Sunucu ilk kullanımda otomatik kuruluyor; elle bağlamanız gereken bir şey yok.
Kurulum ve İlk Kullanım
Eklentiyi Marketplace üzerinden yükleyebilirsiniz. Gereksinimler: VS Code 1.99 veya üstü, GitHub Copilot ve.NET SDK.
Bir .binlog dosyasını üç şekilde açabiliyorsunuz:
- Komut Paletinden (
Ctrl+Shift+P) Binlog: Load File. - Build & Collect Binlog ile tek adımda hem derleme hem yakalama.
- Structured Log Viewer’dan Open in VS Code.
Sonrasında Copilot Chat içinde @binlog katılımcısına soru sormaya başlıyorsunuz:
@binlog why did the build fail?
@binlog what are the slowest targets?
@binlog /perf
Binlog Explorer: Derlemenin Haritası
Kenar çubuğundaki ağaç yapısı derlemenin tamamını tek bakışta gösteriyor: Loaded Binlogs, Projects, Errors, Warnings ve en yavaş hedefler, en yavaş görevler, yeniden derleme nedenleri ile analiz zamanlamasını içeren bir Performance bölümü bulunuyor.
Tanılamalar aynı zamanda VS Code’un yerleşik Problems panelinde de görünüyor; proje bazlı CodeLens ve Ask @binlog aksiyonu sayesinde ağaçtaki bir hata tek tıkla açıklamaya dönüşüyor.
@binlog Sohbeti ve Tek Tıkla Onarım
Analizin sohbete dönüştüğü yer burası. Açık uçlu sorular sorabilir ya da hazır slash komutlarını kullanabilirsiniz: /errors, /perf, /timeline, /compare, /summary, /incremental ve /buildcheck. Katılımcı MCP araçlarını doğrudan çağırdığı için her cevap log içindeki gerçek verilere dayanıyor.
En dikkat çekici özelliklerden biri Fix all issues: Copilot başarısız projeyi okuyor, düzeltmeyi uyguluyor, yeniden derliyor ve önce/sonra binlog’larını yüklüyor; düzelmenin işe yarayıp yaramadığını editörden çıkmadan doğrulayabiliyorsunuz. Adım adım ilerlemek isteyenler için ise herhangi bir tanılamaya sağ tıklayıp Auto-fix with Copilot seçeneğini kullanmak mümkün.
Regresyonları Yayına Çıkmadan Yakalamak
Yüklü herhangi bir .binlog‘u baseline olarak işaretlediğinizde, sonraki her derleme otomatik olarak bununla karşılaştırılıyor. Durum çubuğunda Build: +X% vs baseline rozeti beliriyor ve bir Regressions düğümü tam olarak neyin değiştiğini listeliyor: yavaşlayan hedefler, eklenen veya kaldırılan tanılamalar, MSBuild özellik farkları ve NuGet paket sürümü değişiklikleri. Tek bir regresyonu doğrudan @binlog‘a devrederek detayına inebiliyorsunuz.
İki Derlemeyi Görsel Olarak Karşılaştırma
Build Comparison görünümü iki logu hedef hedef hizalayıp farkları gösteriyor; proje grafiği ise MCP sunucusunun hesapladığı kritik yolu vurguluyor. Kaynaktaki örnekte Copilot, %473’lük bir sıçramanın kaynağını soğuk başlangıçtaki bir CoreCompile‘a bağlıyor ve bunun kodla ilgili bir sorun değil, ilk derleme maliyeti olduğunu açıklıyor. Yani sayının ne anlama geldiğini de söyleyen bir çıktı elde ediyorsunuz.
Ek Özellikler
- Build Timeline: Hedef ve görev sürelerinin görsel bar grafikleri; grafiğe tıklayarak Copilot ile analiz.
- Optimize build: Optimizasyon seçin, Copilot uygulasın, otomatik A/B karşılaştırmasıyla kazancı doğrulayın.
- CI/CD entegrasyonu: Azure DevOps Pipelines ve GitHub Actions üzerinden binlog indirme; branch veya PR filtresiyle başarısız CI derlemesini VS Code’dan çıkmadan inceleme.
- Search: Tüm build olayları üzerinde sorgulama — hedefler, görevler, mesajlar ve özellikler.
- Language Model araçları:
binlog_lm_overview,binlog_lm_errors,binlog_lm_search,binlog_lm_perf,binlog_lm_compare— agent modu ve özel chat modlarıyla kullanılabiliyor. Hazır bir Build Analysis chat modu da mevcut.
Geri Bildirim ve Durum
MSBuild Binlog Analyzer Preview aşamasında ve açık geliştirmeyle ilerliyor. Hata raporu, özellik isteği veya genel geri bildirim için dotnet/skills deposunda issue açmak mümkün.
Kaynaklar ve İleri Okuma
- Analyze MSBuild Binary Logs with Copilot in VS Code —.NET Blog (orijinal yazı)
- MSBuild Binlog Analyzer — Visual Studio Marketplace
- MSBuild Binlog MCP Server duyurusu
- Microsoft.AITools.BinlogMcp — NuGet
- MSBuild ile build log elde etme — Microsoft Learn
- MSBuildStructuredLog — GitHub
- dotnet/skills — Issues
- Binlog MCP Server: Build Sorunlarını Copilot’a Çözdürmek
- GitHub Copilot Build Performance: Proje Bazlı Analiz Geldi
- GitHub Copilot ile C++ İteratif Build’lerinizi Hızlandırın







Yorum gönder