ProcessStartInfo.Arguments принимает несколько аргументов с двойными кавычками - PullRequest
1 голос
/ 11 марта 2020
string CandlePath = "C:\\Program Files (x86)\\WiX Toolset v3.11\\bin\\candle.exe";
string BundlePath = "C:\\Solution Directory\\Bundle.wxs";
string wixObjPathToSave = "C:\\Solution Directory\\Bundle.wxs";
ProcessStartInfo processStartInfo = new ProcessStartInfo("cmd.exe"); 
processStartInfo.WindowStyle = ProcessWindowStyle.Normal;
processStartInfo.Arguments ="/k \"" + candlePath + "\" " +BundlePath + " " +wixObjPathToSave;

Когда я передаю аргументы, как указано выше, процесс принимает аргументы, но свеча выдает ошибку, что «C: \ Solution» не распознается как внутренняя или внешняя команда, что ожидается, поскольку я не предоставил двойной кавычки в bundlePath и wixobjPathToSave

processStartInfo.Arguments ="/k \"" + candlePath + "\" \"" +BundlePath + "\" \"" + wixObjPathToSave +"\"";

Когда я передаю аргументы, как указано выше, процесс выдает ошибку, что 'C: \ Program' не распознается как внутренняя или внешняя команда.

Что Я сделал не так?

1 Ответ

0 голосов
/ 12 марта 2020

Я получил ответ

processStartInfo.Arguments ="/k \"\"" + candlePath + "\" \"" +BundlePath + "\" \"" + wixObjPathToSave +"\"";

Я добавил еще одну двойную кавычку впереди. Теперь работает нормально. Но у меня есть только одно сомнение, почему требуется дополнительная двойная кавычка?

...