使用 AppId 卸载使用 Inno Setup 安装的程序,以防卸载程序 exe 丢失

Use AppId to uninstall program installed with Inno Setup in case uninstaller exe is lost

我正在尝试将我们的软件安装程序(设置)项目从使用 Wix 更改为使用 Inno Setup。

在 Wix 中,msiexec /X {appId}UninstallString。但我注意到 Inno Setup 的做法有所不同。它会立即调用 unins000.exe。我担心的是,如果在任何情况下,程序文件夹中缺少 unins000.exe,那么用户可能无法正确卸载我们的软件。

我的问题是:

我试过在命令提示符下手动输入命令msiexec /X {AppID}_isl,但似乎无法通过这种方式卸载软件。

提前致谢。

Inno Setup 根本不使用 MSI 数据库。 Inno Setup 是完全独立的,没有任何依赖项或全局数据库或任何类型的注册。

Inno Setup AppId 不是 MSI 产品代码。从某种意义上说,您可以使用 AppId 卸载应用程序。通过查找 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 中的 AppId 并使用其中的 UninstallString。但这显然不是你想要的。

使用 Inno Setup 自己的卸载程序是卸载应用程序的唯一方法。

我认为你没有解决真正的问题。安装文件夹中的任何用户更改都会以某种方式损坏应用程序。用户不应该以任何方式触摸安装文件夹。默认情况下,用户甚至没有这样做的权限(如果您将应用程序安装到 Program Files)。


无论如何,在许多情况下,重新安装应用程序(并因此重新创建卸载程序)将解决缺少卸载程序的问题。