static void replaceVersion(VersionProp vp, Version oldVer, Version newVer, ref string fileContent) { string strOldVer = verToAsmVersion(oldVer); string strNewVer = verToAsmVersion(newVer); fileContent = fileContent.Replace(strOldVer, strNewVer); using (StreamWriter sw = new StreamWriter(vp.FilePath) { AutoFlush = true }) { sw.Write(fileContent); sw.Close(); } }
static Version processVersion(VersionProp vp, Version v) { int rev = v.Revision + vp.RevInc; int build = v.Build + vp.BuildInc; int minor = v.Minor; if (rev >= vp.RevMax) { rev = 0; build++; } if (build >= vp.BuildMax) { build = 0; minor++; } return(new Version(v.Major, minor, build, rev)); }
static void Main(string[] args) { //Major Version //Minor Version //Build Number //Revision VersionProp vp = parseCommandLine(args); string fileContent = getFileContent(vp.FilePath); string asmVer = getAsmVerString(fileContent); Version oldVer = parseVersion(asmVer); if (oldVer == null) { Console.WriteLine("Unable to parse AssemblyVersion"); Environment.Exit(0); } Version newVer = processVersion(vp, oldVer); replaceVersion(vp, oldVer, newVer, ref fileContent); Console.WriteLine(oldVer.ToString() + " -> " + newVer.ToString()); }
static VersionProp parseCommandLine(string[] args) { //-f filepath //-bm Build number max //-rm Revision number max //-ri Revision increment //-bi Build increment //-h help if (args.Count() == 0) { showHelp(); Environment.Exit(0); } VersionProp vp = new VersionProp() { BuildInc = 0, BuildMax = 100, RevInc = 1, RevMax = 100 }; for (int i = 0; i < args.Count(); i++) { if (args[i] == "-f") { if (File.Exists(args[i + 1])) { vp.FilePath = args[i + 1]; i++; } else { Console.WriteLine("File doesn't exist : " + args[i + 1]); Environment.Exit(0); break; } } else if (args[i] == "-bm" || args[i] == "-rm" || args[i] == "-ri" || args[i] == "-bi") { int m; if (int.TryParse(args[i + 1], out m)) { switch (args[i]) { case "-bm": vp.BuildMax = m; break; case "-rm": vp.RevMax = m; break; case "-ri": vp.RevInc = m; break; case "-bi": vp.BuildInc = m; break; } i++; } else { Console.WriteLine("Argument \"" + args[i] + " " + args[i + 1] + "\" is invalid."); Environment.Exit(0); } } else { Console.WriteLine("Invalid argument \"" + args[i] + "\""); Environment.Exit(0); } } return(vp); }