Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将参数发送到Visual Studio的开发人员命令提示符_C#_Visual Studio_Visual Studio 2012_Cmd_Mstest - Fatal编程技术网

C# 将参数发送到Visual Studio的开发人员命令提示符

C# 将参数发送到Visual Studio的开发人员命令提示符,c#,visual-studio,visual-studio-2012,cmd,mstest,C#,Visual Studio,Visual Studio 2012,Cmd,Mstest,我无法将一些参数传递给vs的Dev cmd提示符,我可以使用经典cmd,但不能使用此命令。我需要它,因为我想从一个可执行文件执行CodedUITests 这就是我的代码的样子: String Path = @"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Visual Studio 2012\Visual Studio Tools\Developer Command Prompt for VS2012.lnk";

我无法将一些参数传递给vs的Dev cmd提示符,我可以使用经典cmd,但不能使用此命令。我需要它,因为我想从一个可执行文件执行CodedUITests

这就是我的代码的样子:

String Path = @"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Visual Studio 2012\Visual Studio Tools\Developer Command Prompt for VS2012.lnk";

ProcessStartInfo proc = new ProcessStartInfo();
proc.FileName = Path;
proc.UseShellExecute = true;
proc.Arguments =  @"/c MSTest/h";
Process.Start(proc);
它启动,但没有插入参数,我做错了什么

编辑1-这些都不起作用

Process.Start(Path, @"/c "+"MSTest/h"); - err : invalid path - in dev cmd prompt

编辑2-这是我的最终代码的样子,部分工作,dev cmd启动,但无法将arg解析到其中,因为我传递的任何arg都直接转到cmd,而不是dev cmd

// ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", @"%comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\VsDevCmd.bat""");
            ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", @"%comspec% /k ""C:\Users\butoiu.edward\Desktop\VsDevCmd1.bat");            
            procStartInfo.UseShellExecute = false;
           // procStartInfo.Arguments = "/k MSTest";
            Process proc = new Process();

            proc.StartInfo = procStartInfo;
            proc.Start();


            proc.WaitForExit();
你试过这样吗

    void OpenWithArguments()
    {
        Process.Start("IExplore.exe", "www.northwindtraders.com");
        Process.Start("path to exe", "argument");
    }
--
FMI

更新: 我想它会这样工作。。。但不确定

打开系统默认命令提示符。。并将第一个参数作为批处理文件路径(
C:\ProgramFiles(x86)\Microsoft Visual Studio 11.0\Common7\Tools\VsDevCmd.bat
)给出一个空格并添加下一个属性

Process.Start("Path to EXE", "arg1 arg2")
lnk“文件实际上是visual studio cmd提示符的链接。您可以尝试位于“C:\Program Files(x86)\Microsoft visual studio 10.0\VC\vcvarsall.bat”的原始文件,而不是此位置


我希望这会对您有所帮助。

您应该能够使用Process.Start(,)例如:Process.Start(“IExplore.exe”、“google.com”);查看一下我的线程,我不明白为什么开发者CMD如此特殊以至于无法工作…@ExtremeSwat您在尝试什么?您正在尝试打开CMD promt吗?不,我正在尝试打开Visual Studio的开发者命令提示符。在VS之外启动测试的唯一方法是通过开发者命令提示符PromptVS命令提示符也可以是targetet到默认cmd提示符..但加载时它将执行一个特殊的批处理文件,以便加载.net环境..VsDevCmd.bat,因此我无法/无法向此类命令提示符抛出参数?这是我最后一个测试运行解决方案。我将在大约10小时后返回并给出答案,而不是在我的工作电脑上。谢谢
Process.Start(Path,  "MSTest/h");  -nothing
// ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", @"%comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\VsDevCmd.bat""");
            ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", @"%comspec% /k ""C:\Users\butoiu.edward\Desktop\VsDevCmd1.bat");            
            procStartInfo.UseShellExecute = false;
           // procStartInfo.Arguments = "/k MSTest";
            Process proc = new Process();

            proc.StartInfo = procStartInfo;
            proc.Start();


            proc.WaitForExit();
    void OpenWithArguments()
    {
        Process.Start("IExplore.exe", "www.northwindtraders.com");
        Process.Start("path to exe", "argument");
    }
Process.Start("Path to EXE", "arg1 arg2")
String Path = @"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat";

ProcessStartInfo proc = new ProcessStartInfo();
proc.FileName = Path;
proc.UseShellExecute = true;
proc.Arguments =  @"/c MSTest/h";
Process.Start(proc);