private IDictionary <string, string> GetParsedBuildProperties() { if (MsBuildProperties == null) { return(new Dictionary <string, string>()); } var keyValuePairs = MsBuildProperties.Split(','); var twoElementArrays = keyValuePairs.Select(kvp => kvp.Split('=')).ToList(); foreach (var errorKvp in twoElementArrays.Where(a => a.Length != 2)) { throw new ArgumentException(string.Format("Key value pair near {0} is formatted incorrectly", string.Join(",", errorKvp[0]))); } return(twoElementArrays.ToDictionary(kvp => kvp[0].Trim(), kvp => kvp[1].Trim())); }