0

我正在尝试制作卸载程序。我基本上需要能够删除包含卸载程序的程序文件中的目录。

我正在考虑让卸载程序将自己的副本创建到 temp 文件夹,然后让卸载程序从程序文件夹运行在 temp 中打开卸载程序并在继续卸载的地方关闭自身。

问题是,如何删除临时文件夹中的卸载程序...

4

2 回答 2

0

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

他有多种解决方案——但主要针对 C++ 代码。

我目前正在尝试在 C# 中实现“DELETE_ON_CLOSE”方法。

对所有反对者的评论: MSI 在所有情况下都不能解决这个问题。就我而言,我的应用程序需要安装到一个网络文件夹,任何网络用户都可以在其中运行该应用程序。它还需要支持从任何网络工作站进行升级和卸载 - 不一定是安装应用程序的同一工作站。这意味着我无法将卸载程序注册到本地计算机上的“添加/删除程序”列表中。我必须创建一个卸载到安装文件夹中的 Uninstall.exe。MSI不支持,所以我必须自己写。

于 2013-03-07T19:10:57.223 回答
-1

尽管我同意每个人都说你不应该这样做,但你可以做的是:

  1. 让您的程序在其正在运行的操作系统的临时文件夹中创建一个可执行文件(和配置文件)。
  2. 让您的程序将其作为独立进程启动,然后退出。
  3. 然后该可执行文件回调实际的设置内容。
  4. 设置完成后,临时可执行文件可以删除设置文件。
  5. 由于您的程序的唯一痕迹现在位于临时文件夹中,因此最终会自动清除。
于 2012-08-05T16:16:32.187 回答