是否有可能告诉 Innosetup 卸载应用程序的 32 位版本(通常位于 Program Files (x86)
中)以安装应用程序的 64 位版本(通常位于 Program Files
中)。如果没有卸载32位版本,那么它们的bot会在启动时启动,导致问题。
不知道有没有这方面的手续。鉴于 64 位应用程序基本上将是一个不同的应用程序,尝试卸载 32 位应用程序似乎就像尝试卸载一个不相关的应用程序。
动机是越来越少的供应商提供对 32 位库的支持。例如,msvc2017 没有用于 Qt 的 32 位库。所以我越早迁移到 64 位越好。
注意:如果这在 Innosetup 中无法实现,欢迎使用任何其他替代方法。
最佳答案
只需卸载以前的 32 位版本,就像其他任何版本一样。
见 How to detect old installation and offer removal?
只要 32 位和 64 位版本的安装程序具有相同的 AppId
,它应该几乎是开箱即用的。 .唯一不同的是,您需要在 HKLM32
中明确查找卸载 key 。 (32 位配置单元)而不是 HKLM
/HKEY_LOCAL_MACHINE
(在 64-bit install mode 中默认为 64 位配置单元)。
如果您从 InitializeSetup
卸载 32 位版本已经,正如上述问题的公认答案所示,Inno Setup 不会注意到 32 位版本曾经存在过,甚至会将默认安装路径“重置”到 64 位 Program Files
文件夹。
关于inno-setup - 卸载 32 位应用程序并安装 64 位应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45006468/