2011-03-03 68 views
27

我正在努力克服這一障礙,我非常希望SO上的某個人能夠提供幫助。VS 2008斷點將不會被擊中。沒有任何符號已經被載入此文檔

enter image description here

當我在類庫項目設置斷點。它看起來是一個正常的斷點。當我開始調試我的解決方案breakpoint becomes hollowed out and has a yellow triangle with an exclamation point裏面。當我平移斷點時顯示的工具提示是「當前斷點不會被命中。本文未加載符號。

此項目不是ASP.NET應用程序,它只是一個簡單的winForms應用程序。

我已經接管了一個現有的winForms應用程序和解決方案中的多個項目。我已經構建並運行在調試模式下的項目。我可以在某些項目的斷點處停下來,但是,我無法打到其他項目的斷點,特別是我的項目類型爲類庫

我迄今已完成:

  • 我已經刪除了所有調試和發佈文件夾,
  • 我刪除了文件夾OBJ,並事後重建的解決方案。
  • 我重新啓動了VS2008 IDE。
  • 我已重新啓動我的電腦。
  • 我檢查瞭解決方案的配置管理器,以確保我的類項目包含在調試版本中,它是。
  • 我已經檢查了dll的調試/模塊,雖然我不想引用dll。

此外,我已按照SO帖所列的故障排除步驟:

the breakpoint will not currently be hit no symbols loaded

VS 2010, NUNit, and 「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.

Can't debug - 「The breakpoint will not currently be hit. No symbols have been loaded for this document」

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

來自MSDN和其他地方,其中沒有一個適合我的特定需求上Google發現另外,我看過無數的帖子。

部分職位是:

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.

我已閱讀的所有帖子都非常翔實,但沒有任何建議的解決方案適合我的具體需求。請讓我知道是否有更多的信息是必要的。我可以提供更多的鏈接作爲參考,指出哪些工作沒有成功。以及我採取的其他措施來嘗試解決此問題。

我發佈此後續行動,讓每個人都驚訝。我跟着@Hans @建議調用有問題的項目文件。

我放置在昏暗的FRM作爲形成=新ProjectInQuestion.FormInQuestion

這個現在已經在調試組件加載 - > Windows的>模塊

新問題是更令人困惑的比我最初的問題。我的斷點看起來不錯,但正在跳過。在斷點處沒有明顯的錯誤。

enter image description here

+1

我的具體問題的解決方案是通過在我的中斷點之前特定地調試實例來安裝我想調試的dll實例。 – 2011-05-19 19:45:13

回答

11

這可能是一個老問題,但我想在回答這個問題後找到解決方案,因爲這是針對這個主題提出的最完整的問題之一。

介紹

我的項目是一個ASP.NET應用程序,但將發生在WinForms的基本問題也是如此。當程序集輸出中缺少DLL時,會出現問題。但是,如果您正在引用的DLL引用另一個不在程序集中的DLL,則會發生相同的異常。由於操作系統加載DLL的方式,引用的DLL必須位於環境路徑中,而不是在輸出程序集中。

項目A參考DLL D. DLL D引用DLL X. DLL D可能在您的輸出程序集中。 DLL X必須位於您的環境路徑中。

此問題的核心原因是操作系統在運行時加載本地DLL的方式。使用以下邏輯加載原生DLL,該邏輯不包含> Temporary ASP.net文件和applications/bin文件夾。如果本機DLL未包含在具有.EXE>文件的/ bin文件夾中,或者該DLL不在路徑環境變量中,則在任何.Net應用程序中也會出現此問題。

個人解決方案

我使用了一個名爲DivaAPIWrapper.dll(對於C#託管DLL)DLL。然而,我知道DivaAPIWrapper.dll需要DivaAPI.dll(非託管C++)才能運行。我將DivaAPI.dll放在所有輸出路徑中,但我一直收到此錯誤。只有在我的環境路徑(C:\ windows \ Microsoft.Net \ Framework \ v2.0.50727)中放置了DivaAPI.dll後,才能正常工作。 請注意:如果您使用更新版本的.NET框架,您的路徑可能會有所不同!

完整的解決方案傑裏·歐曼

見鏈接在此:http://blogs.msdn.com/b/jorman/archive/2007/08/31/loading-c-assemblies-in-asp-net.aspx

+0

這聽起來像是我問我的時候回答的答案!感謝您的迴應。 – 2011-09-07 18:16:00

1

我有這種情況發生的時候,就像你說的,直到加載DLL斷點不活躍。不過,它並不重要,因爲無論如何它必須在代碼可以到達該點之前加載DLL。我的斷點是以這種方式開始的,但他們總是受到打擊。

+0

我注意到,只有在程序集被特別引用的情況下,斷點纔可用,如果dll是動態加載的並且使用接口引用斷點永遠不會被命中。 – 2011-08-10 13:15:01

+0

我看起來可以做的只是跳轉到項目屬性>編譯選項卡>高級編譯選項>將生成調試信息設置爲'無'。我不認爲我在參考鏈接中看到了這一點。 – Kratz 2011-08-10 13:43:14

+0

我有一個函數,在運行時動態加載我的程序集,這可以防止加載當前未使用的程序集並節省內存。由於這些程序集以這種方式加載,所以無法調試。 – 2011-08-10 14:19:24

4

連接到正在運行的進程時,這發生在我身上最近。問題是,調試選項被設置爲

附加到:本機代碼

對於我而言,它需要的是:

附加到:託管代碼

1

檢查您是否更改了旨在編譯此項目的處理器。我有,當我改變它,一切都工作了。顯然,處理器的變化使它'不同於原來的'

1

我在Vb.net-forms應用程序中遇到了與VS2008相同的問題,我在另一個項目中調用了dll,並將其加載到同一個項目組中。我發現這個簡單的解決方案:我在form_load事件中加載了一個實例,如 Dim pmg As New PMGExport.PMGExportNeu。

3

我最近發現的一件事,工作很不錯!

託管應用程序(即調用您的DLL的一個被使用)必須具有此行:

<supportedRuntime version="v4.0"/> 
在「WhateverApplicationItIs.exe.config」文件

,該<configuration>段內。

例子:(見「......」因爲不管文件有它裏面並原樣保留)

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

PS:儘量配合這個版本與您的項目屬性中設置的目標框架。我相信2.0.50727對於3.5 Framework來說是一個很好的嘗試,對於4.0 Framework來說是4.0。

對我來說,它只是解決了兩個不同的DLL,我試圖在不同的應用程序中進行調試。

+0

在VS2008中,我得到了'沒有符號已經加載'的消息,並且無法調試我的WiX C#自定義操作。嚮導爲我創建的CustomAction.config包含v4.0和v2.0.50727的supportedRuntime標記。但只要我註釋了v4.0標籤並重建,我就能夠調試自定義操作。 – 2014-04-17 14:49:08

7

我也面臨同樣的問題,發現了很多的解決方案,從互聯網,但解決方案對我的作品列在下面:

其由於我在架構4.0版提出申請,我試圖用下面V2版本的附加過程。 0,所以請確保您的框架版本具有託管代碼版本,如下所示。

enter image description here

1

請檢查工具欄(運行按鈕旁邊)的解決方案配置模式設置爲「調試」,而不是「釋放」

+0

這是一個可能的原因,因爲這是兩歲,我不再在這個軟件上工作,它已不再提供給我。感謝你的回答。 – 2013-08-21 12:22:29

1

希望這有助於...

我正在引用位於我的bin \ Release文件夾中的DLL,即使我處於調試模式。

我將DLL複製到bin \ Debug文件夾,當我運行VS時,斷點被擊中。

0

請檢查工具欄(運行按鈕旁邊)的解決方案配置模式設置爲「調試」,而不是「釋放」 爲我工作THX

0

確保debug mode在Visual Studio中選擇,然後再開始調試。

選中Visual Studio中的下拉菜單,Play按鈕。

1

試試這個, 在VS 2008,進入工具 - >選項 - > Debugging->常規 - >選中/禁用「要求源文件的原始版本

1

我有VS2010同樣的問題完全匹配 - >常規

  • 設置調試informati

    1. 右擊項目
    2. 選擇屬性
    3. 選擇C/C++:我在流中的步驟解決格式爲program Database(/ZI)
    4. 檢查鏈接器 - >調試生成調試信息是yes。
  • 相關問題