&引用;“已安装”;在WiX中安装或卸载时,条件始终为真

&引用;“已安装”;在WiX中安装或卸载时,条件始终为真,wix,windows-installer,Wix,Windows Installer,我有一个可以做一些工作的安装程序,最后,启动RSYNC安装程序(这是一个EXE文件,让两者同时工作没有问题) 但在卸载时,我也想删除RSYNC <CustomAction Id="InstallRSyncDaemon" FileKey="cwRsyncServer_4.0.5_Installer.exe" ExeCommand="/q" Execute="deferred" Return="ignore" Impersonate="no" /> <CustomAction Id

我有一个可以做一些工作的安装程序,最后,启动RSYNC安装程序(这是一个EXE文件,让两者同时工作没有问题)

但在卸载时,我也想删除RSYNC

<CustomAction Id="InstallRSyncDaemon" FileKey="cwRsyncServer_4.0.5_Installer.exe" ExeCommand="/q" Execute="deferred" Return="ignore" Impersonate="no" />
<CustomAction Id="UninstallRSyncDaemon" FileKey="rsync_uninstall.bat" ExeCommand="[INSTALLDIR]" Execute="deferred" Return="check" Impersonate="no" />
<CustomAction Id="EditConf" FileKey="rsync.bat" ExeCommand="[INSTALLDIR]" Execute="deferred" Return="ignore" Impersonate="no"/>

<InstallExecuteSequence>
  <Custom Action='InstallRSyncDaemon' Before='InstallFinalize'>(NOT remove="ALL")</Custom>
  <Custom Action='EditConf' After='InstallRSyncDaemon'>(NOT remove="ALL")</Custom>
  <Custom Action='UninstallRSyncDaemon' Before='RemoveFiles'>remove="ALL"</Custom>
</InstallExecuteSequence>
我尝试了“已安装”和其他条件,得到了相同的结果

在日志文件开始时,我有:

MSI (c) (9C:80) [17:37:36:772]: PROPERTY CHANGE: Adding ACTION property. Its value is 'INSTALL'.
MSI (c) (9C:80) [17:37:36:772]: Doing action: INSTALL
Action 17:37:36: INSTALL.
Action start 17:37:36: INSTALL.
MSI (c) (9C:80) [17:37:36:772]: UI Sequence table 'InstallUISequence' is present and populated.
MSI (c) (9C:80) [17:37:36:772]: Running UISequence
MSI (c) (9C:80) [17:37:36:772]: PROPERTY CHANGE: Adding EXECUTEACTION property. Its value is 'INSTALL'.
如果我试图在安装过程中更改条件以启动它,那么它正在工作,因此对我来说,它只是条件声明


但我不明白为什么,这是教程或StackOverflow答案中经常使用的条件。

我认为删除应该是大写的。试试这个

REMOVE="ALL"

但它也将在修改和升级中运行。检查更多有关此情况的信息

如果用户自己安装了RSync怎么办?如果依赖RSync的程序的另一个安装程序也采用同样的方法呢?似乎是一种非常短视的“我的计划是唯一重要的”方法。
REMOVE="ALL"