我根据代码here创建了一个安装程序。如果存在以前版本的应用程序,我希望安装程序在安装新版本之前将其删除。WiX主要升级直到衍生后才会完成安装
如果它是一个干净的安装,一切顺利。
如果是升级,会发生奇怪的事情。正如所料,旧版本被删除,注册表被更改,并且快捷方式被放置在桌面上。奇怪的是,当安装程序完成时,主文件不存在于应用程序文件夹中。
在升级后启动后,会弹出一个小的安装程序消息框并指出“请稍候,Windows正在配置-app name- ..”。在此快速消息之后,该文件应该存在于应用程序文件夹中,并且应用程序启动。
在发布之前,它不在那里。我甚至在启动应用程序之前尝试重新启动,以查看是否将该文件放置在某种缓存中。
任何人都见过这种行为?这有点像this questiom,但它发生在每次升级。
在您可能的解释中,只有第一个符合我的方案。我会看看我能否找到原始应用程序的组件GUID。如果我不能,安装时是否有办法强制文件丢弃? – Tony 2012-04-05 15:11:32
@Tony:不是我所知道的。问题不在于该文件未安装,而是在安装过程结束时删除旧版本产品时卸载该文件。更改GUID会弄乱组件引用计数机制。 – 2012-04-05 15:38:01
我尝试重新使用旧的组件GUID作为主文件,但问题仍然存在。这一次,安装程序也强制重启。我注意到,旧的安装程序的所有文件都在该组件条目下。 – Tony 2012-04-05 17:17:29