我正在为我们的旧版软件编写新的安装程序。安装程序最初是使用InstallShield Professional 6.40构建的,现在我正在Inno Setup中构建它。由于软件基础架构的重大变化,我需要首先卸载旧的基础架构,以便我可以使用新的安装进行全新安装(使用Inno Setup)。
旧版本安装在驱动器的根目录(C:\SoftwareName\
)中,现在我将它移动到Program Files中的适当位置 - 以及更改注册表项名称。因此,虽然它是相同的软件,但它确实被视为完全不同的软件。
我在旧安装的注册表中找到了条目:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{[OUR GUID]}
在这里,UninstallString
中有一个卸载信息条目:
RunDll32 C:\PROGRA~2\COMMON~1\INSTAL~1\engine\6\INTEL3~1\Ctor.dll,LaunchSetup "C:\Program Files (x86)\InstallShield Installation Information\{[OUR GUID]}\Setup.exe"
第二部分,我知道我可以执行以启动“修改/卸载”向导。但这需要自动化,只显示卸载的进度。
我找到了以下链接:
但这些似乎是指较新版本的InstallShield。我们的装置很旧(6.40)。我已经设法使用这种智慧至少启动卸载这样......
RunDll32 C:\PROGRA~2\COMMON~1\INSTAL~1\engine\6\INTEL3~1\Ctor.dll,LaunchSetup "C:\Program Files (x86)\InstallShield Installation Information\{[OUR GUID]}\Setup.exe" -10x9 -uninst -s -w
但如果用户希望卸载,它仍会提示是/否提示...
这个过程应该......
但我没有幸运完成这些事情。
执行此卸载的适当方法是什么?