public Versions(Version oldFileVersion, BinaryApiCompatibility compatibility) { Compatibility = compatibility; var oldSemanticVersion = new Version(oldFileVersion.Major, oldFileVersion.Minor, oldFileVersion.Build, 0); var newSemanticVersion = oldSemanticVersion.GetNewSemanticVersion(compatibility); AssemblyFileVersion = newSemanticVersion; AssemblyInformationalVersion = AssemblyFileVersion; AssemblyVersion = new Version(newSemanticVersion.Major, 0, 0, 0); ExclusiveMaximumFileVersion = AssemblyFileVersion.WithMinorIncremented(); }
public Versions(Version oldFileVersion, BinaryApiCompatibility compatibility) { Compatibility = compatibility; var oldSemanticVersion = new Version(oldFileVersion.Major, oldFileVersion.Minor, oldFileVersion.Build, 0); var newSemanticVersion = oldSemanticVersion.GetNewSemanticVersion(compatibility); AssemblyFileVersion = newSemanticVersion; AssemblyInformationalVersion = AssemblyFileVersion; AssemblyVersion = new Version(newSemanticVersion.Major, 0, 0, 0); ExclusiveMaximumFileVersion = AssemblyFileVersion.WithMinorIncremented(); }
public static Version GetNewSemanticVersion(this Version oldSemVer, BinaryApiCompatibility compatibility) { switch (compatibility) { case BinaryApiCompatibility.Identical: return WithBuildIncremented(oldSemVer); case BinaryApiCompatibility.BackwardsCompatible: return WithMinorIncremented(oldSemVer); case BinaryApiCompatibility.Incompatible: return new Version(oldSemVer.Major + 1, 0, 0); default: throw new ArgumentOutOfRangeException("compatibility"); } }
/// <remarks>The first 3 digits represent the SemVer - the last digit is always 0</remarks> public static Version GetNewSemanticVersion(this Version oldSemVer, BinaryApiCompatibility compatibility) { switch (compatibility) { case BinaryApiCompatibility.Identical: return(WithBuildIncremented(oldSemVer)); case BinaryApiCompatibility.BackwardsCompatible: return(WithMinorIncremented(oldSemVer)); case BinaryApiCompatibility.Incompatible: return(new Version(oldSemVer.Major + 1, 0, 0, 0)); default: throw new ArgumentOutOfRangeException(nameof(compatibility)); } }