2012-10-22 3 views
6

Eklenti DLL'lerini Assembly.Load(byte[]) kullanarak yükleyen bir ürün için bir eklenti oluşturuyorum. Bu çok iyi ve güzel, ama bu, kodumdan adım atmak için hata ayıklama sembollerini yüklemek için geleneksel bir yolum olmadığı anlamına geliyor.Assembly.Load (byte []) aracılığıyla yüklenen bir derlemede nasıl hata ayıklıyorsunuz?

Çılgın şey, birkaç ay önce tam olarak aynı sorunu yaşıyor ve çözdüm - ve oğlum kendimle gurur duyuyordum! Bu yüzden yapılabileceğini biliyorum, sadece nasıl unuttum!

ben çalışmış olabilir şeylerden birkaçı belirsiz anılarım var, ama ben kafamdan ayrıntıları alay edemez: ben belirgin hatırlamıyorum çünkü olsa
  • Muhtemelen yanlış

    • NET Reflektör IIS Express ziyade Cassini daha
      • kullanma
    • dosya orijinal .cs arasında adım adım Ama bu savak olarak beni vurur d çözümü - derleme bir bayt dizisinden yüklenir; bu nedenle çerçeve, DLL'nin nereden geldiğini veya uygun bir PDB'nin görünmesi durumunda neye benzeyeceğini bilmez. Bu problem her ortamda mevcut olmalıdır. Bu çalıştı "Modüller" penceresinden
      • aracılığıyla elle sembolleri yükleniyor
    • ; "Xxxxx.pdb sembol dosyası modülü ile eşleşmiyor" - çünkü tabiki bir bayt dizisinden değil DLL'den geliyoruz. senin Derleme kesin adlandırılmış ise
+0

Yük (byte [], bayt []) yükünü büyük olasılıkla kullanmışsınızdır. –

+0

Bunu yapmayı çok isterdim, ancak ürün kapalı kaynaklıdır. Reflektör kullandığım için Assemly.Load (bayt []) 'ın kullanıldığını biliyorum. Ben * bayt [], byte [] 'kullanmalarını isteyin ve bir .pdb dosyası olup olmadığını kontrol edin, ama sonra bir sonraki sürümün ne kadar süreceğini kimin beklediğini beklemek zorundayım (varsayarak onaylanır). Yine de teşekkürler :) –

+0

Derlemeniz güçlü bir şekilde adlandırılmış mı? –

cevap

1

, sen GAC montaj koyabilirsiniz. Güçlü adlandırılmış derlemeler, Assembly.Load(byte[]) aracılığıyla yüklenmiş olsa bile GAC'den her zaman yüklenen 'dir. Ardından, sembollerinizi C:\Windows\symbols\dll numaralı telefona koyun ya da uygun olan yerlerde. Ben her zaman benzer bir şekilde başka bir uygulama tarafından yüklenen kendi ürünümüzün eklenti DLL'leri hata ayıklama yapmak.

GAC'a yüklemek için gacutil kullanabilirsiniz. Hata ayıklama işlemini tamamladığınızda kaldırmayı unutmayın ya da GAC'ın eski bir sürümüne karşı test çalıştırmaya son verebilir ve unutmuş olabilirsiniz.