From 09054e7dab68ffcc5a0ff0da2c4093ff2f479a18 Mon Sep 17 00:00:00 2001 From: Kenneth Skovhede Date: Tue, 1 Jul 2014 15:38:20 +0200 Subject: [PATCH] Better debugging when setting update params from commandline --- BuildTools/AutoUpdateBuilder/Program.cs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/BuildTools/AutoUpdateBuilder/Program.cs b/BuildTools/AutoUpdateBuilder/Program.cs index df32e1066..31968e428 100644 --- a/BuildTools/AutoUpdateBuilder/Program.cs +++ b/BuildTools/AutoUpdateBuilder/Program.cs @@ -96,15 +96,27 @@ namespace AutoUpdateBuilder updateInfo = new Newtonsoft.Json.JsonSerializer().Deserialize(jr); + var isopts = new Dictionary(opts, StringComparer.InvariantCultureIgnoreCase); foreach (var k in updateInfo.GetType().GetFields()) - if (opts.ContainsKey(k.Name)) + if (isopts.ContainsKey(k.Name)) { try { - k.SetValue(updateInfo, opts[k.Name]); + //Console.WriteLine("Setting {0} to {1}", k.Name, isopts[k.Name]); + if (k.FieldType == typeof(string[])) + k.SetValue(updateInfo, isopts[k.Name].Split(new char[] {';'}, StringSplitOptions.RemoveEmptyEntries)); + else if(k.FieldType == typeof(Version)) + k.SetValue(updateInfo, new Version(isopts[k.Name])); + else if(k.FieldType == typeof(int)) + k.SetValue(updateInfo, int.Parse(isopts[k.Name])); + else if(k.FieldType == typeof(long)) + k.SetValue(updateInfo, long.Parse(isopts[k.Name])); + else + k.SetValue(updateInfo, isopts[k.Name]); } - catch + catch (Exception ex) { + Console.WriteLine("Failed setting {0} to {1}: {2}", k.Name, isopts[k.Name], ex.Message); } }