在WiX设置中,我需要检测是否使用Inno安装程序安装了以前的版本并卸载了以前的版本。
答案 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卸载程序。