过程参数中的空格

Whitespaces at the Process Arguments

我正在尝试使用 Visual Studio 2015,VSIX 项目创建一个 Visual Studio 加载项。该加载项应该能够 运行 一个 .exe 文件以及当前项目路径。目前我可以找到项目的路径并将其作为进程(.exe 文件)的参数。 .exe文件被cmd 运行 如下:

    the.exe -d projectDirectoryPath

检测项目路径不是我的问题,但是,如果路径包含 Space Character ,则将其理解为一个单独的参数。 以下代码是我用来启动该过程的代码:

string myDir = activeProjectPath();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.FileName = pathOfExe + "\the.exe";
startInfo.Arguments = "-d " + myDir;

当当前项目的路径不包含Space字符时,代码可以正常运行,否则无法启动进程。该过程出现以下错误:

Given args:-d C:\Users\theUser\Documents\Visual Studio 2015\Projects\testProject\testProject

Too many arguments specified in your command line! Skipping extra argument: Studio

Too many arguments specified in your command line! Skipping extra argument: 2015\Projects\testProject\testProject

注意: 当我尝试从 cmd 运行 the.exe 时,它在项目路径中接受 space 个字符。

我该如何解决这个问题?

谢谢!

尽量使用"字符。您可以通过以下形式指定路径: "C:\Users\foo\My Documents\file name.sln",例如。 您可以用 " 字符包围任何路径,例如在批处理或 Powershell 脚本中。

startInfo.Arguments = string.Concat("-d", "\"", myDir, "\"");