原始檔與模組生成時的檔案不同,仍要讓偵錯程式使用它嗎
阿新 • • 發佈:2019-02-07
解決辦法:
1.在工具-> 選項-> 除錯-> 常規 裡
把“要求原始檔和版本匹配”的勾勾去掉
然後去掉“地址級的除錯”的勾勾(這樣就不會出現反彙編程式碼了)
然後重新引用
2.直接把WEB專案下面的Bin資料夾下的BLL全部刪除。
3.若出現如下的警告資訊
仔細看生成時輸出視窗有這麼個警告:
warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss
猜想是不是轉化不成功造成pdb裡記錄的原始檔簽名(可能是md5)和硬碟上的原始檔不同造成這個問題。找到相應的檔案,看到註釋裡有亂碼,把亂碼字元刪掉後C4819錯誤消失,斷點也生效了。問題解決。
注:按照C4819警告建議的方式,在"檔案"->"高階儲存選項"裡把"編碼"改為"UTF8 帶簽名.."也能解決問題。
以上的解決方法,均是整理了網上的解決方案,筆者遇到的問題,在執行第一種方法之後問題解決了,因情況而異,特此記錄一下,恐防日後再遇到相同問題時可以參考。
ps:原始檔與模組生成時的檔案不同說明當前除錯的程式中引用的DLL與當前程式碼已經不一致,彈出的對話方塊只是告訴你這個資訊,第一種方法只是把這個提示資訊遮蔽,不還是命中不了打在已經修改程式碼中的斷點? 應該是重新生成DLL程式集,但第二種方法太籠統了,程式碼往往沒那麼複雜