We have a set of dlls that required an downgrade to the previous version. So in the installer project, we have switch those file to run the 'Always overwrite existing file' operation to ensure the downgrade can happen when re-deploy with a patch.
However, this only works for a sub-set of the dlls, majority of them we are trying to downgrade (overwrite). Tried make the installer to dump verbose log as well as checking event view, both were not giving any hints on the reason they were not overwritten.