在Inno Setup中卸载非Inno打包的旧版MSI程序问题求助
问题描述
- 首次使用Inno Setup制作某程序新版本安装包,需在安装新版前卸载非Inno Setup打包的旧版程序。因旧版部分注册表项位置不固定,必须执行完整卸载操作。
- 通过「运行」>
shell:appsfolder找到旧版的AppID,格式为{7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}\****\****\****\****.exe,但在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\及HKEY_CURRENT_USER对应路径中均未找到相关卸载项。 - 查阅资料多针对Inno Setup打包的旧版或可找到注册表卸载项的场景,无法解决当前问题。参考相关线程代码编译通过后,运行时Windows Installer报错*「此操作仅对当前安装的产品有效」*,旧版程序的缓存MSI位于
C:\Windows\Installer。 - 已确认旧版程序为Per User模式安装,但所有用户均可启动该程序。
求助
如何先以Per User模式卸载旧版程序,再切换至管理员安装模式?是否可通过修改代码中的if IsAdminInstallMode() then语句实现?
内容的提问来源于stack exchange,提问作者Nalle077
相关产品推荐
相关产品推荐

