Не работает процесс - C#

Узнай цену своей работы

Формулировка задачи:

создаю процесс вот таким кодом
string par = "C:\\Windows\\Microsoft.NET\\Framework\\v3.5\\csc.exe " + prpath;
            richTextBox2.Text = par;
    ProcessStartInfo psiOpt = new ProcessStartInfo(@"cmd.exe", par);
 
    // скрываем окно запущенного процесса
 
    psiOpt.WindowStyle = ProcessWindowStyle.Hidden;
 
    psiOpt.RedirectStandardOutput = true;
 
    psiOpt.UseShellExecute = false;
 
    psiOpt.CreateNoWindow = true;
 
    // запускаем процесс
 
    Process procCommand = Process.Start(psiOpt);
 
    // получаем ответ запущенного процесса
 
    StreamReader srIncoming = procCommand.StandardOutput;
 
    // выводим результат
 
    textBox1.Text=srIncoming.ReadToEnd()+Environment.NewLine;
    textBox1.AppendText(prpath);
 
    // закрываем процесс 
 
    procCommand.WaitForExit();
мне через мою прогу нужно скомпилировать выбраный файл.но ничего не происходит, а когда я вручную запускаю командную строку, а в ней компилятор с аргументом, то всё нормально. в чём проблема?
с этим случайно разобрался, просто сделал так
ProcessStartInfo psiOpt = new ProcessStartInfo("cmd.exe", par);
но появилась проблема - не могу запуститть этот скомпилиный файл
string par2 = Path.GetFileNameWithoutExtension(openFileDialog2.SafeFileName) +".exe";
    richTextBox2.Text = par2;
    ProcessStartInfo psiOpt2 = new ProcessStartInfo("cmd.exe",par2);
 
    // скрываем окно запущенного процесса
 
    psiOpt2.WindowStyle = ProcessWindowStyle.Normal;
 
    psiOpt2.RedirectStandardOutput = false;
 
   psiOpt2.UseShellExecute = false;
 
    psiOpt.CreateNoWindow = false;
 
    // запускаем процесс
 
    Process procCommand2 = Process.Start(psiOpt2);
 
    // получаем ответ запущенного процесса
 
   // StreamReader srIncoming2 = procCommand2.StandardOutput;
 
    // закрываем процесс
 
    procCommand2.WaitForExit();

Решение задачи: «Не работает процесс»

textual
Листинг программы
openFileDialog2.ShowDialog();
 
string par2 = openFileDialog2.FileName;
string path = Path.GetDirectoryName(par2);
string fileName = Path.GetFileName(par2);
            
richTextBox2.Text = par2;
 
Process procCommand2 = new Process();
procCommand2.StartInfo.FileName = fileName;
procCommand2.StartInfo.WorkingDirectory = path;
procCommand2.Start();
 
procCommand2.WaitForExit();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5
Похожие ответы