Symptoms
I have a newly created installation package (MSI) that installs a new version of my application.
I have a new ProductCode for my installation, but I left the UpgradeCode the same.
Therefore, when I launch a new MSI, it first deletes the old version correctly. Even the Program Files \ MyProduct directory has been deleted.
But after uninstalling the old version, the installer then only partially installs the new version. If I fix a damaged new installation (using Add Remove Programs-> Modify Installation-> Repair), everything is fixed.
If I first uninstall the old version using Add Remove Programs and then install the new version, everything will be fine. The problem only occurs when installing the new version over the old version.
Possible reason
Version numbers for different dlls and exes in the old version were corrupted. The old exe version is 4.11.1234. The version for the new exe is 4.5.1234. According to the "File Rights Rules", the new file will not overwrite the old file. The reason I scratch my head is because by the time the InstallFiles action is done, the target file is no longer on disk.
Other information
I am aiming for a Windows 3.1 installer.
My installation sequence is approximately:
...
InstallValidate
RemoveExistingProducts
InstallInitialize
...
InstallFiles
...
InstallExecute
InstallFinalize
....
If this context does not make the question clear, let me know ...
Thanks!