2014-09-16 74 views
7

Hata ayıklamaya çalıştığım bir MMC ek bileşenim var. Şu anda, ek bileşeni yapıcısına yerleştirilir aşağıdaki kod, bunun için hata ayıklayıcıyı ekleyerek açısından çalışır:Hata ayıklayıcı işlemek için eklenmiyor

public MySnapIn() 
{ 
#if DEBUG 
    if (!Debugger.IsAttached) 
    { 
     Debugger.Launch(); 
    } 
#endif 
    ... 
} 

Ama gerçekten sinir bozucu her zaman Visual Studio için bir hata ayıklayıcı eklemek zorunda. Bu süreci otomatikleştirmek istiyorum. İdeal olarak, F5'i vurmak zorunda kalırdım ve otomatik olarak hata ayıklayıcıyı ekler. Aşağıdaki denedim:

  • Proje Özellikleri -> dış program Başlat -> girilen: -> Komut satırı argümanları - "C \ Windows \ System32 \ mmc.exe"
  • Proje Özellikleri> Gave bir Bir .msc dosyasına giden yol (ek bileşen yerleşimini depolar; böylece her zaman yüklemeyi kolaylaştırır, böylece her zaman Dosya'ya sahip olmamanız -> Ek Bileşeni Ekle/Kaldır).

Bu çalışmadı. Hata ayıklayıcı otomatik olarak eklenmez. Bu süreci nasıl otomatikleştirebilirim veya hata ayıklayıcının otomatik olarak bağlanmasını engelleyen nedir?

+2

1 basitçe nasıl bir hata ayıklayıcı ekli edilecek talebinde öğrettiğin için ('Debugger.Launch()'). Bunun mümkün olduğunu bilmiyordum. – stakx

+1

@stakx Çalışır * çoğu zaman *. Örneğin bir Windows Hizmetiniz veya bir GUI'ye sahip olmayan başka bir uygulama türü (yumuşak mikrofona göre) varsa, işe yaramıyor: http://stackoverflow.com/questions/12042054/debugger -Windows-on-windows-service-in-windows-8 Ayrıca bir hata ayıklama aracı olarak WER hakkında bilgi edinmek isteyebilirsiniz (sizin için çökme döküntüleri üretir; kazazedeler ile, bunları Visual Studio'ya yükleyebilir ve yeniden Hata noktasında hata ayıklayıcısını ve tüm uygulamalarınızın nesnelerinin durumunu görün. – Alexandru

+0

@stakx WER sadece mevcut olması bir kayıt defteri anahtarı değişiklik (http://msdn.microsoft.com/en-us/library/windows/desktop/bb787181(v=vs.85).aspx) ve PDB dosyaları gerektirir. Ayrıca Görev Yöneticisi'nden dökümleri de oluşturabilirsiniz (CTRL + SHIFT + ESC -> bir uygulamaya sağ tıklayın -> Döküm dosyası oluştur) – Alexandru

cevap

6

Sadece anladım. Emin

  • Halısı: As it turns out, sen force it to stay in 32-bit mode için "Komut satırı argümanları" -32 bayrağı eklemek sonra 64 bit sistemde 32 bit MMC başlatıcısı (I olduğum) kullanın ve gereken Ek bileşenli projem, Configuration Manager'daki herhangi bir CPU'yu hedefledi.
  • Proje Özellikleri -> dış program Başlat -> "C: \ Windows \ SysWOW64 mmc.exe \" Yazılan -> Komut satırı argümanları -
  • Proje Özellikleri> bir .msc dosyasına it a yol verdi, ve ayrıca -32 bayrağı (depolar ek bileşeni düzeni bu, her zaman Dosya zorunda kalmamak için daha kolay, her zaman yüklemek mümkün kılar, böylece -> ek Bileşen-in ekle/Kaldır).
+3

'" C: \ Windows \ SysWOW64 \ mmc.exe "' adı 64 başlığında olmasına rağmen, bu klasör aslında 32 bit sürümleri nerede programların canlı, bu yüzden 64 bit değil, 32 bit başlatıcısı çalıştırıyorsunuz.64 bitlik sürümler, 64 bitlik bir uygulama çalıştırıyorsanız veya "C: \ Windows \ sysnative" ise 32 bitlik bir uygulama çalıştırıyorsanız, "C: \ Windows \ System32" içinde yaşıyor (32 bit uygulama) –

+0

@ScottChamberlain Bu çok zıt karşı-sezgisel, ama teşekkürler, cevabımı güncelleyeceğim. – Alexandru

+1

Bu tür yönlendirmeler hakkında daha fazla bilgi edinmek isterseniz, [Dosya Sistemi Yeniden Yönlendiricisi] 'ndeki bu MSDN sayfasına bakın (http://msdn.microsoft.com/en-us/library/windows/desktop/aa384187 (v ​​= vs. 85) .aspx) –

İlgili konular