C# 无法将程序文件路径变量作为进程的参数传递

C# 无法将程序文件路径变量作为进程的参数传递,c#,.net,C#,.net,我想返回程序文件目录中的一个目录作为参数。我使用AppDomain.CurrentDomain.BaseDirectory获取该参数。如何正确设置格式以将其作为参数发送 这就是我现在正在做的 String[] arguments = { Settings.Default.installDir, Settings.Default.executableName, "\"" + AppDomain.CurrentDomain.BaseDirectory + "\"" }; AppDomain.Cur

我想返回程序文件目录中的一个目录作为参数。我使用AppDomain.CurrentDomain.BaseDirectory获取该参数。如何正确设置格式以将其作为参数发送

这就是我现在正在做的

String[] arguments = { Settings.Default.installDir, Settings.Default.executableName, "\"" + AppDomain.CurrentDomain.BaseDirectory + "\"" };
AppDomain.CurrentDomain.BaseDirectory返回驻留在程序文件(x86)中的目录

当我运行它时,我会得到“PROGRAM_FILES GSSDesktopAlerts.exe\”C:\PROGRAM FILES(x86)\somedir\somesubdir\\“”

启动时,我获取System.ArgumentException:路径中的非法字符。

忘记使用“\”。 您应该使用逐字字符串。例如:@“\”。
使用Path.Combine代替“+”操作符。

最好先检查StartInfo.Filename。
myprocess.StartInfo.Arguments = String.Join(" ", arguments);