Assemblies in this project use strong names and require version management to handle code changes and compatibility.
Versioning Logic
- Compatible Changes (Minor Version): Increment the third number (e.g.,
1.0.3.0 $\rightarrow$ 1.0.4.0). When this happens, you must also update XYZ_OLD_VERSION and XYZ_POLICY_VERSION. - Incompatible Changes (Major Version): Increment the first number (e.g.,
1.0.0.0 $\rightarrow$ 2.0.0.0). In this case, the XYZ_POLICY_ASSEMBLY name must change (e.g., from policy.1.0.xxx to policy.2.0.xxx) because old client code should not be redirected to the new incompatible assembly.
The version.txt Configuration Format
Entries in cli_ure/version/version.txt are used for building assemblies and the installation set (MSI database).
Example: Compatible Update
CLI_URETYPES_NEW_VERSION=1.0.4.0
CLI_URETYPES_OLD_VERSION=1.0.0.0-1.0.3.0
CLI_URETYPES_POLICY_VERSION=4.0.0.0
CLI_URETYPES_POLICY_ASSEMBLY=policy.1.0.cli_uretypes
Example: Incompatible (Major) Update
CLI_URETYPES_NEW_VERSION=2.0.0.0
CLI_URETYPES_OLD_VERSION=2.0.0.0-2.0.0.0
CLI_URETYPES_POLICY_VERSION=1.0.0.0
CLI_URETYPES_POLICY_ASSEMBLY=policy.2.0.cli_uretypes