我正在尝试使用Visual Studio 2015,VSIX项目创建Visual Studio加载项。该加载项应该能够与当前项目路径一起运行.exe文件。目前我可以找到项目的路径并将其作为Process的参数(.exe文件)。 .exe文件由cmd运行,如下所示:
the.exe -d projectDirectoryPath
检测项目路径不是我的问题,但是,如果路径包含空格字符,则将其理解为单独的参数。 以下代码是我用于启动过程的代码:
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;
当前项目的路径不包含空格字符时,代码正常工作,否则进程无法启动。该过程给出以下错误:
给定args:-d C:\ Users \ theUser \ Documents \ Visual Studio 2015 \ Projects \ testProject \ testProject
命令行中指定的参数太多!跳过额外参数:Studio
命令行中指定的参数太多!跳过额外参数:2015 \ Projects \ testProject \ testProject
注意:当我尝试从cmd运行该命令时,它接受项目路径中的空格字符。
我该如何解决这个问题?
谢谢!
答案 0 :(得分:1)
尝试使用“字符。您可以使用以下格式指定路径: 例如,“C:\ Users \ foo \ My Documents \ file name.sln”。 您可以使用“字符包围任何路径,例如批处理或Powershell脚本。
startInfo.Arguments = string.Concat(“ - d”,“\”“,myDir,”\“”);