因為這個項目已經過期,說明妳修改了壹些文件或者項目配置或者上次編譯失敗,需要重新編譯,否則調試會出錯。
如果上次編譯成功,按F5調試,這個提示仍然出現,可能有問題。
如果每次都出現這個問題,那麽這個解決方案非常適合妳。
當然解決方法不是選擇“不要再顯示這個對話框”,這個只是不顯示,但是每次調試開始前都會編譯壹次。
我們要的是停止編譯,直接開始調試。
首先,這個提示意味著visual studio發現有些文件已經過期,但是編譯時沒有編譯任何文件,甚至沒有重新生成輸出文件。那不是騙我。
嗯,其實就是騙我而已。這是Visual studio中的壹個bug。壹般Visual studio 2005不存在這個問題,但Visual studio 2010會出現,其他版本暫時不清楚。
雖然是bug,但是可以解決。
出現這個bug的原因是Visual studio 2010認為項目中被刪除的文件已經過期。例如,項目中的頭文件已被刪除。Visual studio 2010在找不到這個頭文件的時候就認為已經過期了,所以每次調試VS的時候都認為項目已經過期,需要先編譯。
那為什麽沒有找到任何編譯時編譯的文件?原因是這個頭文件沒有被任何CPP或C文件使用過,所以妳在編譯時沒有找到任何要重新編譯的文件。
Bug的原理明白了,解決方法就是在VS項目中刪除那個頭文件。
壹個比較笨的辦法就是在VS中點擊打開壹個頭文件,發現打不開的東西。
壹個巧妙的方法是編寫壹個腳本來解析工程文件,然後驗證該文件是否存在。
另壹種方式是通過DebugView查看。
下面介紹壹個這樣的方案。
1.打開devenv.exe.config文件(該文件位於% program files % \ Microsoft Visual Studio 10.0 \ Common 7 \ IDE \或% program files(x86)% \ Microsoft Visual Studio 10.0 \ Common 7 \ IDE \)。
2.在
& ltsystem.diagnostics & gt
& lt開關& gt
& ltadd name = " CPS " value = " 4 "/ >
& lt/switches & gt;
& lt/system.diagnostics >
3.重新啟動Visual Studio
4.打開DbgView(下載地址:/en-us/en-us/sysinternals/bb 896647)查看:菜單-》捕獲-》捕獲Win32和菜單-》捕獲-》捕獲事件。
5.點擊F5開始調試,出現提示“此項目已過期”時停止。
6.在DbgView中按ctrl+F window查找“不是最新的”,找到類似這樣的內容:
[120]項目“D:\ CACHE \ test 1 \ test 1 . vcx proj”不是最新的,因為生成輸入“D:\ CACHE \ test 1 \ fun 1。h不見了。
7.此時,密鑰文件FUN1。找到了h。只需刪除項目中的這個文件,然後重新編譯它。