public static int CompareVersions(string v1, string v2) { string[] a1 = v1.Split ('.'); string[] a2 = v2.Split ('.'); for (int n=0; n<a1.Length; n++) { if (n >= a2.Length) return -1; if (a1[n].Length == 0) { if (a2[n].Length != 0) return 1; continue; } try { int n1 = int.Parse (a1[n]); int n2 = int.Parse (a2[n]); if (n1 < n2) return 1; else if (n1 > n2) return -1; } catch { return 1; } } if (a2.Length > a1.Length) return 1; return 0; }
public bool SupportsVersion(string version) { if (Addin.CompareVersions(Version, version) > 0) { return(false); } if (baseVersion == "") { return(true); } return(Addin.CompareVersions(BaseVersion, version) >= 0); }