public IEnumerable<string> FixupArgs(IEnumerable<string> args)
{
var rv = new List<string>();
var aa = args.ToArray();
for (int i = 0; i < aa.Length; i++)
{
var a = aa[i];
if (a.StartsWith("/D") || a.StartsWith("-D"))
{
string val;
if (a.Length == 2 && (i + 1 < aa.Length))
{
val = aa[++i];
}
else
{
val = a.Substring(2);
}
if (val.Contains("=\""))
{
val = Regex.Replace(val, "\"", "\"\"\"");
}
rv.Add("/D" + val);
}
else
{
rv.Add(a);
}
}
return rv;
}