Codeblocks 等軟體 修改原始碼後 不能立即執行的解決辦法||exe檔案刪除慢
不懈地奮鬥了兩天,終於找到原因了。
記錄如下
症狀:
Codeblocks 、Visual Studio 都出現此問題:修改原始碼 無法立即執行 ,就是:cannot open output file "D:\xxxxx......\Debug\NEW.exe" permission denied!
一般是因為視窗是關閉了,但是 程序沒有完全退出,如果有,那麼關閉此程序(new.exe)就行。
但是問題並不簡單。程序裡面沒有。
起初我懷疑是許可權問題,我去那個目錄 發現無法訪問執行,無法刪除,無法檢視許可權資訊。但是過了大約1分鐘,檔案自動消失。設定了資料夾和該分割槽的最高許可權,重灌了codeblocks N次,問題依舊。
後來,懷疑是防毒軟體 死磕,用了Unlocker檢查有沒有被佔用,結果沒有被佔用,用神器(procexp.exe)監測檔案訪問情況,監視了360 和 ESET的程序,然後又監視了 那個NEW.exe的情況,發現 這個檔案 在那一分鐘內是
Deleting Pending(刪除掛起 / 刪除等待)狀態,也就是說系統正要刪除它,而且沒有發現 訪問被拒絕的資訊,但是我不明白這一分鐘 系統或者軟體在對它做什麼。
百度查詢無果。
由於本人沒有任何技術基礎,只能瞎碰經驗,到此已經找不出原因了。
但是一有空就研究。。。。
今天發現,解除安裝軟體的時候,我看著某個軟體的目錄下的檔案,發現其他檔案已經被刪除,而剩下 uninstall.exe(解除安裝程式的主程式),我以為沒有刪除乾淨,當我手動刪除的時候發現和我之前編譯的程式檔案一樣,無法訪問和執行,也無法刪除,無法檢視許可權資訊。
於是我習慣性的把問題轉化為 關鍵詞——exe檔案刪除慢,然後查到了。
很容易就找到 問題所在,就是Application Experience服務 被禁用
我似乎沒有動過這個服務,但是之前優化過一些啟動項。所以說,不明白的服務項不能隨便關閉,否則出現無法意料也不知道原因的疑難雜症,問題很小,但不至於為了這個問題去重做系統。於是我瘋狂地找到了這個原因。
理論的解決方法:
開啟 Application Experience 和Program Compatibility Assistant Service兩個服務(確保這兩個服務是處於啟動狀態)
具體做法,右鍵服務項,如果啟動是灰色的,選擇屬性,選擇自動,然後確定,然後再右鍵,就可以啟動。