Чтобы передать путь с пробелами в консольное приложение .NET, вы должны его избежать.Вероятно, не бежать, но окружить двойными кавычками:
myapp.exe --path C:\Program Files\MyApp`
становится
new string[] { "--path", "C:\Program", "Files\MyApp" }
, но
myapp.exe --path "C:\Program Files\MyApp"
становится
new string[] { "--path", "C:\Program Files\MyApp" }
и этоработает отлично, и вы можете легко это проанализировать.
Я хочу расширить набор параметров, заданный с помощью дополнительного, и начать новый процесс с результирующим набором параметров:
new ProcessStartInfo(
Assembly.GetEntryAssembly().Location,
String.Join(" ", Enumerable.Concat(args, new[] { "--flag" })))
Этостановится myapp.exe --path C:\Program Files\MyApp --flag
там, где путь отбрасывает свое побег.
Как обойти его с помощью общего решения?(без поиска значения каждого параметра, требующего экранирования и цитирования его вручную)