2010-08-27 62 views
6

我目前正在查找bug並需要在Visual Studio 2005的發佈配置中調試到特定的dll。 在某些時候,我關閉瞭解決方案,做了一些其他的事情並重新加載它。從那時起,我的斷點並沒有受到打擊,我得到了臭名昭着的「沒有符號已經加載......」的消息。所以我打開了模塊窗口,我想調試的dll不再出現在列表中,因此我無法手動加載符號。該應用程序的行爲正常,所以我絕對確信該DLL必須已被加載執行某些功能。果然,如果我重命名DLL並啓動應用程序,它不再工作,所以它也必須是正確的DLL。爲什麼在Visual Studio的模塊列表中缺少加載的dll?

我嘗試將dll項目設置爲啓動項目,並執行命令以執行應用程序的exe文件,並從Visual Studio外部啓動應用程序,然後將其附加到進程中,但都無濟於事。

問題是,爲什麼該DLL不會出現在已加載的模塊列表中,但它必須已經加載?我想不出任何其他我曾經做過的改變,這可能導致這種情況,我錯過了什麼? (也許真的很明顯?)

任何幫助表示讚賞!

回答

1

在將項目從一臺計算機轉移到另一臺計算機後,我遇到了類似問題。我將簡單解釋我發現的我如何修復它,並且您可以確定它是否適合您的問題和解決方案。

  1. 工作計算機我寫了一個應用程序包含我的程序引用的.dll文件。將應用程序移動到家用電腦後,應用程序無法再找到之前引用的.dll文件,因爲該文件已不存在。

  2. 因爲以前編譯的程序集(調試文件夾)包含自己的.dll文件副本和其他資源,應用程序編譯並運行時甚至沒有引用的資源(.dll文件)。簡而言之,它是正在運行的舊程序集版本,而不是您正在處理的當前應用程序。這也是爲什麼這個錯誤往往會暫停設計器窗口並在應用程序運行完成後拋出錯誤。

我想看看以下內容:

a)在解決方案資源管理器,進入參考文件夾和右鍵單擊丟失的參考節點並選擇性能。在屬性框中,觀察被引用資源的路徑資源是否仍位於此路徑?

b)檢查調試文件夾,查找您正在尋找的資源的副本。如果資源爲,請複製並將其保存到桌面。如果是不存在,從原始來源獲取文件。

C)在Solution Explorer中,右鍵單擊 '屬性' 和 '開放'。從出現的菜單中選擇'Resources',從左側出現的新窗口頂部出現,您應該看到'添加資源',並帶有一個小下拉箭頭。 單擊箭頭並選擇'添加現有文件',然後瀏覽到文件。如果你沒有看到它,你可能不得不從上面的「打開」和「取消」按鈕上的小下拉菜單中更改正在瀏覽的文件。找到該文件後,應在解決方案資源管理器中創建一個名爲「資源」的新文件夾。現在該文件是您的應用程序的永久部分,而不僅僅是對它的引用。

1

今天我有同樣的問題與Visual Studio 2008年我用一個簡單的測試儀測試在裝配的新方法。所以添加了一個對我的程序集的引用,我編寫了代碼來加載程序集並調用新方法,構建,一切正常。但是在執行期間,調試器會拋出一個異常,說新的新方法不存在,並且模塊窗口是空的。

原來我正在修改的程序集在GAC中,並且正在我的build目錄中使用而不是新的。

相關問題