簡體   English   中英

自刪除可執行文件(卸載程序)

[英]Self Deleting Executable (Uninstaller)

我正在嘗試制作卸載程序。 我基本上需要能夠刪除程序文件中包含卸載程序的目錄。

我正在考慮讓卸載程序在臨時文件夾中創建自己的副本,然后讓從程序文件夾運行的卸載程序在臨時文件夾中打開卸載程序並在繼續卸載的地方關閉自身。

問題是,如何刪除臨時文件夾中的卸載程序...

查看: https ://www.catch22.net/tuts/win32/self-deleting-executables

他有多種解決方案——但主要針對 C++ 代碼。

我目前正在嘗試在 C# 中實現“DELETE_ON_CLOSE”方法。

對所有反對者的評論: MSI 並不能在所有情況下解決這個問題。 在我的例子中,我的應用程序需要安裝到一個網絡文件夾,任何網絡用戶都可以在其中運行該應用程序。 它還需要支持從任何網絡工作站進行升級和卸載——不一定是安裝該應用程序的同一工作站。 這意味着我無法將卸載程序注冊到本地機器上的添加/刪除程序列表中。 我必須創建一個放入安裝文件夾的 Uninstall.exe。 MSI 不支持那個,所以我必須自己寫。

盡管我同意大家說你不應該那樣做,但你可以做的是:

  1. 讓您的程序在其正在運行的操作系統的臨時文件夾中創建一個可執行文件(和配置文件)。
  2. 讓您的程序將其作為獨立進程啟動,然后退出。
  3. 該可執行文件然后回調實際的設置內容。
  4. 安裝完成后,臨時可執行文件可以刪除安裝文件。
  5. 由於您的程序的唯一痕跡現在位於臨時文件夾中,因此它最終會自動清除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM