I want to make a installation which can be both new installation and update installation. When it was used as an update installation, I want some files to be updated regardless the version and modified datetime. And some files would never be updated.
What I tried: Set the "REINSTALLMODE" to "amus". And set the "Never overwrite" property of never updated files' components to be "Yes".
What I get: It doesn't work. Those components with "Never overwrite = yes" are still updated somehow.
My question: Is this right? REINSTALLMODE has the higher priority than component's "Never overwrite" property? How to deal with this partial updates issue?
Thanks in advance.
MSI has specific File replacement logic (Archived link).
I would look into doing a Major upgrade.
Assuming these are unversioned files (for example text/xml config files, not assemblies) I would manually set the File Version on any file I wanted to always be updated (the manually set version will override what is already installed), and leave alone the others which the file replacement logic should ignore.
Here is a doc about REINSTALLMODE=amus which mentions the 'a' means ignore file versioning rules and update everything. not what you want. Also, I believe REINSTALLMODE is generally for 'repair' operations, not install/upgrade anyways.