症状
我已经新创建的安装程序包(MSI),该安装我的应用程序的新版本。
我有我的安装新的产品代码,但我已经离开了的UpgradeCode相同。
所以,当我执行新的MSI它首先正确地卸载旧版本。 即使是计划Files \ myProduct的目录被删除。
但卸载旧版本后,安装程序,然后只是部分安装新版本。 如果我修复受损的新安装(使用添加删除程序 - >修改安装 - >修复),一切都是固定的。
如果我第一次使用添加删除程序,然后安装卸载旧版本的新版本,一切都很正常。 只有当我安装新版本在旧版本的顶部出现该问题。
可能的原因
在旧版本不同的DLL和EXE文件的版本号是搞砸了。 老EXE的版本是1234年4月11日。 该版本的新的EXE是1234年4月5日。 据“文件版本规则”新的文件将不会覆盖旧的文件。 为什么我抓我的头的原因是由当时的InstallFiles动作执行目标文件不再驻留在磁盘上。
其他信息
我针对的Windows Installer 3.1。
我安装的执行顺序大致是:
...
InstallValidate
RemoveExistingProducts
InstallInitialize
...
InstallFiles
...
InstallExecute
InstallFinalize
....
如果这种情况下不会使问题清晰,让我知道...
谢谢!