We are developing an application with components on multiple physical tiers, sharing many assemblies as well as having some exclusive to each tier.
I am wanting to know what the typical versioning strategy is for release hot-fixes, or only a few components of the application.
Our issue tracking software contains a version number for the entire product. If the current version is 1.4.5 and a hotfix is required, the issues for the hotfix are to be released against 1.4.6. All assemblies affected by the fixes for 1.4.6 are versioned 1.4.6. If we distributed just those files we end up with some files on version 1.4.5 and some on 1.4.6.
A solution could be to rebuild and release the entire application as 1.4.6 but this would required multiple components on the multiple machines to be redeployed and result in unnecessary downtime of the components that didn't actually change.
What strategies have people put in place for this issue? Is it just a matter accepting that some files will have different version numbers? In the past I have found that this causes confusion with the customers (level 1) support team.