using System; using System.IO; using CSharpMinifier; namespace MinifySolution { class Program { static void Main(string[] args) { var mini = new DirMinifier(); // put your directory mini.Minify(@"C:\tmp\src"); } } public class DirMinifier { public bool Inplace { get; set; } public void Minify(string root) { var minifierOptions = new MinifierOptions { // COULD BREAK YOUR BUILD: LocalVarsCompressing = false, MembersCompressing = false, TypesCompressing = false, MiscCompressing = false, ConsoleApp = false, NamespacesRemoving = false, ToStringMethodsRemoving = false, PublicCompressing = false, EnumToIntConversion = false, // SAFE TO CHANGE: RegionsRemoving = true, LineLength = 120, SpacesRemoving = false CommentsRemoving = true, }; var m = new Minifier(minifierOptions); var dir = new DirectoryInfo(this.Root); var files = dir.GetFiles("*.cs", SearchOption.AllDirectories); foreach (var f in files) { this.MinifyFile(f, m); } } private string MiniName(FileInfo f) { if (this.Inplace) return f.FullName; var ext = f.Extension; var old = f.FullName; var newname = old.Remove(old.Length - ext.Length, ext.Length) + ".min.cs"; return newname; } protected void MinifyFile(FileInfo f, Minifier minifier) { var content = ""; using (var sr = f.OpenText()) { content = sr.ReadToEnd(); } var status = "[?]"; var result = ""; try { result = minifier.MinifyFromString(content); status = "[+]"; } catch { result = content; status = "[!]"; } var newname = this.MiniName(f); using (var sw = new StreamWriter(newname)) { sw.Write(result); } using (var st = new StreamWriter(@"minify-status.log", true)) { st.WriteLine("{1} : [{0}]", f.FullName, status); Console.WriteLine("{1} : [{0}]", f.FullName, status); } } */ } }