When you update a project that has a platform value set, update prefers candidates with matching platform values. It will never select a candidate with a platform value that does not match, but it could select a candidate that does not have a platform value set.
During update, the properties of the candidates are compared with the properties of the project. The platform values are compared as follows:
The platform property is used primarily on projects and products. Source code usually is written so the same file can be built on different platforms (for example, using #ifdef); therefore, individual source files typically do not need platform properties set.