別の言語を C# コードに変換する C# プログラムを作成しようとしています。プログラムは正常に動作し、コードを変換して .cs ファイルに書き込みます。このファイルを自動的にコンパイルして実行したいのですが、C# でこれを行う方法がわかりません。
作成したバッチ ファイルを実行するだけで手動で実行できます。System.Diagnostics.Process クラスを使用して C# からこのバッチ ファイルを実行しようとしました。実行すると、バッチコード自体にエラーが発生し、コマンドが見つからなかったことが示されました(通常の「実行可能ファイル、バッチファイルなどではありません」)。正常に実行される理由はわかりませんが、C# から実行した場合はそうではありません。
バッチ ファイルのコードは次のとおりです: C:\Program_Files_(x86)\Microsoft_Visual_Studio 10.0\VC\bin\amd64\vcvars64.bat csc %1.cs pause
そしてそれを呼び出す関数:
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = "compiler\\compile.bat";
process.StartInfo.Arguments = " "+fileName;
process.Start();
process.WaitForExit();
process.StartInfo.FileName = fileName + ".exe";
process.Start();
process.WaitForExit();
Console.WriteLine("done");
どんな助けでも大歓迎です。