2016-03-17 117 views
0

我正在開發一個C#項目。 這使用一個DLL庫,我也在同一時間開發。VS2015無法調試引用的DLL vs2015

在某些時候,我寫了一個不同的單元測試應用程序(新項目) 在我的主應用程序中使用它們之前測試庫中的一些新功能。 單元測試應用程序,從來沒有寫在圖書館的DLL,它只是測試新的功能。

新功能發生了一些問題,所以我編輯了我原來的主應用程序prj中的.dll(因爲prj包含.dll作爲附加項目)。

然後我從文件中得到了一些警告已經在我的mijn prj之外進行了修改。 但是,因爲我從來沒有從主應用程序的外部編輯dll。我沒有重新加載mainapp後面的代碼;因爲我認爲主應用程序包含當前的代碼。從我的主應用程序,我仍然可以毫無問題地編譯該庫。

因爲我不喜歡那些文件鎖定類似的錯誤,我決定刪除測試單元應用程序,幷包括類似的測試功能,但現在從我的主要應用程序開發prj。現在,一個按鈕打開一個測試表單來測試東西。

問題 現在我再也不能在我的DLL源代碼中設置斷點 當不順心的事,代碼執行犯規停止在哪裏出了問題,我的DLL,但在我的mainapp掛起指向它使用dll的地方。

只是我的代碼已被禁用,但沒有足夠的接縫。

+0

你的問題與單元測試項目無關。只要確保在運行應用程序時,引用了最新的DLL文件和PDB文件。嘗試重建它,並檢查bin/Debug文件夾中的DLL和PDB是否具有重建解決方案時的最後修改日期,以確保您的引用是最新的。 – Jay

+0

當我批量編譯時,我看到最後修改的更改爲我的編譯時間。 所以他們更新,編譯沒有問題。 我只是不能在我的dll文件中設置任何斷點?這曾經是可能的。 – user3800527

回答

0

我解決了它,但它仍然很奇怪。 爲了防止其他人可能遇到類似問題,我發佈了我的解決方案。

這就是我所做的。

我使用解決方案資源管理器從項目中刪除了libray dll。 它只刪除它不從磁盤等刪除它的部分。

然後我去菜單工具\選項\ 在那裏去調試>符號 有vsd1515使用的符號調試的pdp文件的位置。 然後,我刪除了指向我的dll的pdb的路徑。

保存我的項目。重新啓動Vs2015 再次添加我的dll文件,文件菜單添加現有的prj 然後在選項調試符號我再次添加我的發佈版本的dll的pdb文件位置。

===然後你可以設置斷點,但它不夠=== 這些斷點將錯誤codeource不等於。

爲了解決這個去構建菜單並進行清潔PRJ ,或者如果使用批量構建overthere使用清潔 然後重新開始了與構建

現在你可以設置斷點,並在他們身上竟突破 ...漂亮amazin吧?