1. 程式人生 > >Codeblocks 等軟體 修改原始碼後 不能立即執行的解決辦法||exe檔案刪除慢

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 ExperienceProgram Compatibility Assistant Service兩個服務(確保這兩個服務是處於啟動狀態)

具體做法,右鍵服務項,如果啟動是灰色的,選擇屬性,選擇自動,然後確定,然後再右鍵,就可以啟動。

實際上:

Application Experience處於手動,不能是禁用就行了、而Program Compatibility Assistant Service服務可以禁用。