Bir .NET derlemesi .dll dosyasının bir GUID (blog) kullanarak bir .pdb ile nasıl eşleştiğini anladım. Bir montajda hata ayıklayıp kaynak kodunu sorduğumda, bir dosyaya gidersem, kaynak kodun orijinalden farklı olduğunu söyleyebilirim. Bunu nasıl biliyor? .pdb dosyasının her dosya için bir sağlama toplamı içermesini bekliyordum, ancak görünmüyor. Hata ayıklama bilgisini döktüğüm en iyi araç dia2dump. C++ .pdb dosyaları MD5 girdisi vardı, ancak C# .pdb dosyaları yoktu.Kaynak dosya, özgün sürümle eşleşiyorsa Visual Studio nasıl tanıyor?
C dökümü ++
dia2dump -f dia2dump.pdb> -f dia2dump.pdb.files.txt
C# dökümü
dia2dump Autofac.pdb>Autofac.pdb.files.txt
dia2dump -tüm Autofac.pdb>Autofac.pdb.all.txt
bir şey var mı "tüm" çöplükte cevapsız mı?
Bir sağlama toplamı kullanmak zorunda. Ben Module.cs tek bir karakter değiştirirsem, olsun:
Nerede bir .PDB başvurulan bir kaynak dosyası için sağlama toplamı bulabilirim? Her bir kaynak dosya için bir MD5 sağlama toplamı .pdb dosyasında depolanır.
son zamanlarda çok dosyaları. Daha fazla bilgiyi burada bulabilirsiniz. http://blog.ctaggart.com/search/label/pdb –
MD5 hashını .NET PDB'lerinden çıkarmanın bir yolunu buldunuz mu? – Petrik
Yaptım. Kaynak yapabilen SourceLink adlı bir .NET kütüphanesi oluşturdum. https://github.com/ctaggart/SourceLink –