簡體   English   中英

將參數發送到Visual Studio的開發人員命令提示符

[英]Sending arguments to Developer Command Prompt for Visual Studio

我無法將一些參數傳遞給我的Dev cmd提示符以輸入vs,我可以使用經典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

要么

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

要么

Process.Start(Path, @"/c MSTest/h"); - nothing

要么

Process.Start(Path, "/c MSTest/h"); -nothing

要么

Process.Start(Path,  "MSTest/h");  -nothing

編輯2-這就是我的最終代碼的樣子,部分工作,dev cmd開始,但是沒有辦法將args解析為它,因為我傳遞的任何args都會直接進入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 MSDN鏈接

更新:

我認為它將以這種方式工作...但不確定

打開sys默認的cmd提示符..並將第一個參數作為批處理文件路徑( C:\\Program Files (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”中的原始文件代替該位置。

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);

我希望這能幫到您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM