WiX设置检测并卸载Inno设置

时间:2018-06-12 09:07:54

标签: wix windows-installer inno-setup

在WiX设置中,我需要检测是否使用Inno安装程序安装了以前的版本并卸载了以前的版本。

1 个答案:

答案 0 :(得分:2)

<Property Id='INNO_UNINSTALLER_64'>
  <RegistrySearch Id='LocateInnoUninstaller64' Type='file' Root='HKLM'
                  Key='SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}_is1'
                  Name='UninstallString'>
    <FileSearch Id='InnoUninstallerExe64' Name='unins000.exe' />
  </RegistrySearch>
</Property>
<Property Id='INNO_UNINSTALLER_32'>
  <RegistrySearch Id='LocateInnoUninstaller32' Type='file' Root='HKLM'
                  Key='SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}_is1'
                  Name='UninstallString'>
    <FileSearch Id='InnoUninstallerExe32' Name='unins000.exe' />
  </RegistrySearch>
</Property>

<CustomAction Id="ca.RemoveInno64" Property="INNO_UNINSTALLER_64" ExeCommand="/SILENT" Return="check" />
<CustomAction Id="ca.RemoveInno32" Property="INNO_UNINSTALLER_32" ExeCommand="/SILENT" Return="check" />

<InstallExecuteSequence>
  <Custom Action="ca.RemoveInno64" Before="InstallFiles">INNO_UNINSTALLER_64</Custom>
  <Custom Action="ca.RemoveInno32" Before="InstallFiles"><![CDATA[INNO_UNINSTALLER_32 AND NOT INNO_UNINSTALLER_64]]></Custom>
</InstallExecuteSequence>

代码将在Registry中搜索Inno setup UninstallString并找到unins000.exe卸载程序。 Inno setup registry