2011-03-03 21 views
27

Bu engeli aşmak için uğraşıyorum ve SO üzerinde birisinin yardımcı olabileceğine dair umutlarım var. Benim sınıf kitaplığı projede bir kesme noktası ayarlamakVS 2008 kesme noktası şu anda vurulmayacak. Bu doküman için herhangi bir sembol yüklenmemiş

enter image description here

. Normal bir kırılma noktası olarak görünür. Çözümü hata ayıklamaya başladığımda breakpoint becomes hollowed out and has a yellow triangle with an exclamation point içeride. Araç ipucu Ben, kesme noktası olduğunu kaydırmak görüntülenen "Kırılma noktası şu anda vurmak edilmeyecektir. Hiçbir Semboller Bu belge için yüklendi."

Bu proje bir ASP.NET uygulaması değil, sadece bir olduğunu winForms uygulaması.

Çözümde birden çok projeyle var olan bir winForms uygulamasını devraldım. Proje hata ayıklama modunda çalıştı ve çalışıyor. Bazı projelerde kesme noktalarında durabilirim, ancak diğer projelerdeki kesme noktalarına özellikle sınıf kitaplığı olan projemde yer alamıyorum. Ben şimdiye kadar ne yaptım

: Bütün hata ayıklama silinmiş ve klasörleri bırakın gelmiş

Ayrıca, SO yayınlarında açıklanan sorun adımları izleyen Benim spesifik ihtiyaçlarına uygun hiçbiri hem MSDN ve diğer yerlerde, gelen Google bulunan

Fixing “The breakpoint will not currently be hit. No symbols have been loaded for this document.”

Ayrıca, okudum sayısız mesajlar.

bu mesajların bazıları şunlardır:

Visual Studio 2008 "The breakpoint will not be currently hit. No symbols have been loaded for this document"

The breakpoint will not currently be hit. No symbols have been loaded for this document

Breakpoint will not currently be hit. No symbols loaded for this document.

Debugger problem "The breakpoint will not currently be hit. No symbols have been loaded for this document

The Breakpoint will not currently be hit. No Symbols have been loaded for this document.

Okuduğum tüm mesajlar çok bilgilendirici oldu, ancak önerilen çözümlerin hiçbiri benim özel ihtiyaçlarına uymuyor. Daha fazla bilgi için lütfen bize bildirin. Çalışmamış olanlara referans olarak verebileceğim daha fazla bağlantım var. Bu sorunu çözmeyi denediğim ek adımların yanı sıra.

Herkesi şaşırtmak için bu takibi gönderiyorum. Söz konusu proje dosyasını aramak için @Hans @ suggestion'u takip ettim.

Ben form olarak bir loş frm = new ProjectInQuestion.FormInQuestion yerleştirilen

ve bu şimdi debug montaj yüküne sahip

-> Windows-> Modüller

yeni bir sorun daha orijinal sorunumdan çok şaşırtıcı. Sınır değerlerim iyi görünüyor, ama atlanıyorlar. Kesme noktasında belirgin bir hata yoktur. Eğer DLL yüklenene kadar kesme noktası aktif değil dediğim gibi

enter image description here

+1

Özel sorunumun çözümü, özel olarak bir kopma noktamdan önce bir örneği kısarak hata ayıklamak istediğim dll'nin bir örneğini kapatmaktı. –

cevap

11

Bu eski bir soru olabilir, ancak bu konuyla ilgili bir çözüm bulduktan sonra yanıt vermeyi istedim çünkü bu konuyla ilgili en çok sorulan sorulardan biriydi.

giriş

Projem bir ASP.NET uygulaması, ancak baz sorun yanı WinForms tarihinde gerçekleştirilecek. Sorun, derlemeler çıkışlarından bir DLL eksik olduğunda ortaya çıkar. Ancak, başvuruda bulunduğunuz DLL, derlemelerde olmayan başka bir DLL'ye başvuruyorsa, bu aynı özel durum oluşur. İşletim sistemi DLL'leri yükleme biçiminden dolayı, başvurulan DLL ortam yolunda olmalı ve çıkış derlemelerinde olmamalıdır.

Project A başvuruları DLL D. DLL D referansları DLL X. DLL D çıkış gruplarınızda olabilir. DLL X, ortam yolunda olması gerekir.

Bu sorunun temel nedeni işletim sisteminin yerel DLL dosyalarını çalışma zamanında yüklediği yoldur. Yerel DLL'ler,> Geçici ASP.NET Dosyalarını ve uygulamaları/bin klasörünü içermeyen aşağıdaki mantığı kullanarak yüklenir. Bu sorun, ayrıca, Native DLL, .EXE> dosyasıyla/bin klasöründe bulunmuyorsa veya DLL, Yol Ortam Değişkeni'nde değilse, herhangi bir .NET uygulamasında da ortaya çıkar.

Kişisel Çözüm Ben DivaAPIWrapper.dll (C# için yönetilen DLL) adı verilen bir DLL kullanıyordum

. Ancak DivaAPIWrapper.dll'nin çalışması için DivaAPI.dll (Yönetilmeyen C++) gerektiğini biliyordum. Tüm çıkış yollarına DivaAPI.dll yerleştirdim ama bu hatayı almaya devam ettim. Sadece benim çevre yolunda (C: \ windows \ Microsoft.Net \ Framework \ v2.0.50727) DivaAPI.dll yerleştirdikten sonra işe yaradı. Lütfen dikkat: .NET çerçevesinin daha yeni bir sürümünü kullanıyorsanız, yolunuz farklı olabilir! İşte Jerry Orman

Bkz Link

Komple Çözüm: http://blogs.msdn.com/b/jorman/archive/2007/08/31/loading-c-assemblies-in-asp-net.aspx

+0

Bu, sorduğumda aradığım cevap gibi geldi! Cevap için teşekkürler. –

1

Bunu, her zaman olur var. Gerçekten de önemli değil, çünkü kod zaten bu noktaya gelmeden önce DLL'yi yüklemesi gerekiyor. Sınırlarım bu şekilde başlar ama her zaman vurulur.

+0

Kesme noktalarının yalnızca derleme özel olarak başvurulan varsa, dll'ler dinamik olarak yüklendiyse ve kesme noktaları hiçbir zaman vurulmadığında bir arabirim kullanılarak başvuruda bulunduğunu fark ettim. –

+0

Kesme noktası yapmak için yapmam gereken tek şey, proje özelliklerine gitmektır> sekme> gelişmiş derleme seçenekleri> Hata Ayıklama Bilgilerini 'Yok' olarak ayarla. Bunu referans alınan bağlantılarda görmedim. – Kratz

+0

Kullanıldıkları zaman, derlemelerimi çalışma zamanında dinamik olarak yükleyen bir işlev var; bu, kullanılmakta olan yükleme derlemelerini engelliyor ve belleği kaydediyor. Bu meclislerin bu şekilde yüklenmesi sonucunda hata ayıklanamaz. –

4

Çalışan bir süreç eklerken Bu yakın zamanda bana oldu. Sorun ayıklama seçenekleri için Ekle

olarak ayarlanmış olduğunu:

için Ekle: Yönetilen kod

benim hal Yerli kod

, olması gereken

1

Bu projeyi derlemeyi amaçladığınız işlemciyi değiştirmediğinizi kontrol edin. Ben vardı ve onu değiştirdiğimde, her şey tekrar çalıştı. Görünüşe göre işlemcide bir değişiklik 'orijinalden farklı'

1

Aynı proje grubunda yüklü başka bir projede dll denen bir Vb.net-form uygulamasında VS2008 ile aynı Sorunu yaşadım. Bu basit çözümü buldum: Dim pmg As new PMGExport.PMGExportNeu gibi form_load olayına bir örnek yükledim.

3

Son zamanlarda keşfettiğim ve çok güzel çalıştığım bir şey! "WhateverApplicationItIs.exe.config" dosyasında

<supportedRuntime version="v4.0"/> 

, <configuration> bölümün içinde:

barındırma uygulaması (kullanılacak sizin dll çağırıyor bir) bu satırı olması gerekir.

Örnek: (dosya içine alır ne olursa olsun olarak "..." Bkz ve gibi bırakın)

<configuration> 
    ... 
    <supportedRuntime version="v2.0.50727"/> 
</configuration"> 

Not: Proje özelliklerinde ayarlanan hedef çerçevesinde bu sürümü eşleştirmeye çalışın. 2.0.50727'nin 3.5 Framework için iyi bir deney olduğunu ve 4.0 Framework için 4.0 olduğunu düşünüyorum.

Benim için sadece farklı uygulamalarda hata ayıklamaya çalıştığım iki farklı DLL'yi çözdüm.

+0

VS2008'de 'Semboller yüklenmedi' mesajını alıyorum ve WiX C# özel eylemimi hata ayıklayamıyordum. Sihirbaz tarafından benim için oluşturulan CustomAction.config, v4.0 ve v2.0.50727 için supportedRuntime etiketlerini içeriyordu. Ama v4.0 etiketini yorumladıktan ve yeniden oluşturduğumda özel eylemi hatalandırabiliyordum. –

7

Ben de aynı sorunla karşı karşıya ve internetten birçok çözüm buldu ama çözüm aşağıda listelenmiştir benim için çalışıyor: nedeniyle çerçeve sürüm 4.0 yapılan benim uygulamaya

Its ve ben v2 altında sürümüyle işlem eklemek çalışıyordu. 0, aşağıda gösterilen şekilde Yönetilen kod sürümü ile çerçeve sürümünüzün olduğundan emin olun.

enter image description here

1

(düğmesi Run hemen yanında) araç çubuğundaki Çözümler Yapılandırıcı modu ayarlanmış olup olmadığını kontrol edin yerine

+0

Bu, iki yaşından beri artık bu yazılım üzerinde çalışmıyorum ve artık benim için mevcut olmadığı için olası bir nedendir. Cevap için teşekkürler. –

1

Umut bu yardımcı olur "bırakın" den "ayıklama" ... için

Hata ayıklama modunda olmama rağmen bin \ Release klasöründeki bir DLL'ye başvurmaktaydım.

DLL dosyasını bin \ Debug klasörüne kopyaladım ve VS çalıştırdığımda, kesme noktası vuruldu.

0

(düğmesi Run hemen yanında) araç çubuğundaki Çözümler Yapılandırıcı modu

0

debug mode Visual Studio seçildiğinden emin olun ziyade benim için çalıştı THX "bırakın" den "ayıklama" olarak ayarlanmış olup olmadığını kontrol edin , hata ayıklamaya başlamadan önce.

Kontrol Visual Studio Oynat düğmesinin yakın açılır.

1

Vs 2008'de bu, deneyin git Araçlar-> seçenek-> Debugging-> Genel-> tam olarak VS2010 üzerinde aynı sorun var orijinal versiyonunu

1

maç için 'devre dışı/kontrolsüz kaynak dosyaları gerektirir -> Genel

  • Seti ayıklama tanıtım

    1. Sağ tıklama projesi
    2. Nitelikler
    3. seç c/C++ seçin: ben akış adımlarla çözülmesi biçimi üzerinde program Database(/ZI)
    4. Linker-> hata ayıklama Oluştur Hata ayıklama bilgisi Evet'tir.