We made an installer for upgrading our application from version 1.4.1 to version 1.4.2.
Before the upgrade, we manually replaced one of the dll's of this application (1.4.1.26111 replaced by 1.4.2.17065) to do some testing.
After that we upgraded the application using an MSI (containing a more recent version of this dll: 1.4.2.16627, but having a lower version).
After the upgrade this dll had disappeared from our application.
In the MSI upgrade logfile we read for this dll: Installed: Absent; Request: Local; Action: Null
Apparently the MSI decided that an upgrade was not necessary for this dll, because the version to be installed 1.4.2.16627 is lower than the version of the manualy replaced dll (1.4.2.17065).
My question is: How is it possible that this dll was was removed during the upgrade, when the MSI decided that the action should be null. Or has the uninstall phase it's own logic? Apparently this logic does not check the version of the dll on disk?
Can you explain this behaviour?