Deployment 如何跳过安装程序中定义的操作';升级到WiX时的s BeforeUninstall功能

Deployment 如何跳过安装程序中定义的操作';升级到WiX时的s BeforeUninstall功能,deployment,wix,vdproj,visual-studio-setup-proje,wix3.9,Deployment,Wix,Vdproj,Visual Studio Setup Proje,Wix3.9,我们当前使用vdproj创建的安装项目需要迁移到WiX。 在这个过程中,我们在将现有的vdproj msi升级到WiX msi时遇到了问题。 现有实现对安装程序的“BeforeUninstall”事件执行某些操作,升级时不应调用该事件,但在使用WiX msi时,将调用此操作。 如何在使用WiX安装程序升级时跳过此事件 我已尝试设置“PREVIOUSVERSIONSINSTALLED”、“NEWERPRODUCTFOUND”等属性,但仍会调用该操作。如果您在WiX中进行主要升级,则应使用Major

我们当前使用vdproj创建的安装项目需要迁移到WiX。 在这个过程中,我们在将现有的vdproj msi升级到WiX msi时遇到了问题。 现有实现对安装程序的“BeforeUninstall”事件执行某些操作,升级时不应调用该事件,但在使用WiX msi时,将调用此操作。 如何在使用WiX安装程序升级时跳过此事件


我已尝试设置“PREVIOUSVERSIONSINSTALLED”、“NEWERPRODUCTFOUND”等属性,但仍会调用该操作。

如果您在WiX中进行主要升级,则应使用MajorUpgrade元素。如果正在进行升级,它将设置WIX_upgrade_DETECTED属性,如下所述:


我强烈建议您不要使用运行自定义操作代码的安装程序类方法,而使用DTF托管代码自定义操作。我不知道您是否可以从WiX调用安装程序类,因为在VS中,它们依赖于Visual Studio专有的基础结构(installutilb Dll)

是的,我在WiX项目中使用了DTF自定义操作,并且从WiX设置升级到WiX设置工作得非常好。问题在于升级由VS使用WiX安装程序创建的安装程序安装的产品时。它没有:(仅当使用WiX创建的安装程序安装了要升级的产品时,此属性才起作用。我的要求是升级由vdproj安装程序安装的产品。新的WiX内置MSI在检测到具有相同升级代码的旧产品正在升级时,将在升级中设置该属性。与正在升级的MSI产品无关aded或它是用什么构建的,因为设置它的是WiX构建的MSI。如果它不起作用,请在其他地方查找问题,例如由于某种原因没有发生升级。创建详细日志。您能够修复此问题吗?我创建了自定义操作,并为自定义操作设置了条件,如下所示(不是UPGRADINGPRODUCTCODE)和(REMOVE=“ALL”)有关财产组合的详细信息,请访问