微軟工程師Howard Kapustein近日發文分析了Windows作業系統中軟體卸載的真實機制,結論是用戶點擊卸載後,軟體往往並沒有真正從系統中消失。
傳統Win32應用程式的卸載流程存在一個根本問題,即Windows本身並不直接掌控卸載細節,而是調用軟體開發商自己編寫的卸載程序。
也就是說,能不能刪乾淨幾乎完全取決於開發商,如果開發商沒有在卸載程序中寫好完整的清理邏輯,軟體運行期間產生的用戶偏好設置、緩存文件(通常在%AppData%或%LocalAppData%目錄下)以及註冊表鍵值(HKEY_CURRENT_USER或HKEY_LOCAL_MACHINE下的條目)就會被原封不動地保留下來。
當然有些開發商是故意保留這些數據,方便用戶重新安裝時無縫銜接,但如果用戶壓根不打算再用這個軟體,這些文件就成了永久的系統垃圾。
還有一種情況是多個應用共用同一套.dll文件或系統組件,卸載程序為了不影響其他軟體,通常會保守地選擇保留這些共享文件。







