使用 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
,那么用户可能无法正确卸载我们的软件。
我的问题是:
- 有什么方法可以自定义
UninstallString
以使用 AppId
卸载吗?
- 我可以使用
AppId
通过 Inno Setup 实现卸载吗?
(*我的软件有静态 AppId
,所以 AppId
总是已知的。)
我试过在命令提示符下手动输入命令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
)。
无论如何,在许多情况下,重新安装应用程序(并因此重新创建卸载程序)将解决缺少卸载程序的问题。
我正在尝试将我们的软件安装程序(设置)项目从使用 Wix 更改为使用 Inno Setup。
在 Wix 中,msiexec /X {appId}
为 UninstallString
。但我注意到 Inno Setup 的做法有所不同。它会立即调用 unins000.exe
。我担心的是,如果在任何情况下,程序文件夹中缺少 unins000.exe
,那么用户可能无法正确卸载我们的软件。
我的问题是:
- 有什么方法可以自定义
UninstallString
以使用AppId
卸载吗? - 我可以使用
AppId
通过 Inno Setup 实现卸载吗? (*我的软件有静态AppId
,所以AppId
总是已知的。)
我试过在命令提示符下手动输入命令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
)。
无论如何,在许多情况下,重新安装应用程序(并因此重新创建卸载程序)将解决缺少卸载程序的问题。