今天,有朋友在問為什么我在調試的時候會出現"沒有可用於當前位置的源代碼"的錯誤呢?
MSDN上的說法:
沒有可用於當前位置的源代碼,項目不包含您試圖查看代碼的源代碼。原因通常是雙擊了“調用堆棧”窗口或“線程”窗口中沒有源代碼的模塊。可以繼續調試,但不能使用源代碼窗口設置斷點並在此位置執行其他操作。如果需要設置斷點,請使用“反匯編”窗口。
編輯經驗,出現該錯誤就有可能是下面中的一種,讀者可以一一試試:
1. 在項目中引用另一個項目,而修改了被引用項目的代碼后,引用的dll沒有更新,所以出現上述錯誤。
2. 試圖調試托管代碼的轉儲文件。Visual Studio 僅支持使用 SOS 工具,在“即時”窗口中對托管的小型轉儲進行調試。
3. 在解決方案屬性頁中,可以更改調試器查找源文件的目錄,並通知調試器忽略選定的源文件。請檢查"解決方案屬性頁"對話框中的- >"通用屬性"- >"調試源文件"- >"不查找這些源文件",看你要調試的源文件是不是在該列表中,如果在,請刪除后確定。
4. 在工具- >選項- >調試中禁用源代碼不可用時顯示反匯編。
5. 由於代碼的上下文件限制了要調試的源代碼的加載(特別是在調試JavaScript代碼時出現該錯誤時此種可能性最大)。
6. 你要調試的源文件處在一個封裝好的dll文件中,所以按F11是跟不進去的。
7. 如果你有備份文件,試試你的備份文件。
8. 重寫你要調試的源代碼。(當然不推薦這種方法了,不過這也是最后沒有辦法的辦法。)