2016-08-17 19 views
0

私は現在、BlueJのようなC#のようなクローンで作業しています。今私は使用しているクリックの作業フォルダのすべての.csファイルをコンパイルしたいと思います:C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /define:DEBUG /optimize /out:Program.exe *.cs msdnページから取得しました。それがうまくいくためには私は適切な方向性を持つ必要があるので、私は以下を使用します:cd /d + dirここでdirはファイルのディレクターです。今、私がこのようにC#から実行しようとすると:c#2つの引数を持つコマンドラインを実行中

cmd = @"cd /d "+ dir + @" && C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /define:DEBUG /optimize /out:Program.exe *.cs"; 
     file = "cmd"; 
     var proc = new Process(); 
     proc.StartInfo = new ProcessStartInfo(file, cmd); 
     proc.StartInfo.RedirectStandardOutput = true; 
     proc.StartInfo.RedirectStandardError = true; 
     proc.EnableRaisingEvents = true; 
     proc.StartInfo.CreateNoWindow = true; 
     proc.StartInfo.UseShellExecute = false; 
     proc.ErrorDataReceived += proc_DataReceived; 
     proc.OutputDataReceived += proc_DataReceived; 

     proc.Start(); 

     proc.BeginErrorReadLine(); 
     proc.BeginOutputReadLine(); 

何も起こりません。しかし、cmdウィンドウでコマンドを実行しようとするとうまくいきます。何か案は?あなたが実行コマンド上を通過する場合

答えて

1

実行

cmd.exe /c 

cmd.exeを持つコマンドは、パラメータ「/ c」を期待しています。だから、

:コンソールを使用している場合、これはしても動作しませんので、

cmd = @"/c cd /d "+ dir + @" && C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /define:DEBUG /optimize /out:Program.exe *.cs"; 

+0

anwserのおかげで、今でもあまりhappenesを動作するはずです。それでは、コマンド/ Cが見つかりませんでしたが見つからなかったと私に伝えます。 – MrFluffy

+0

それは今の魅力のように働きません!ありがとう! – MrFluffy

関連する問題