Не помещайте нисходящее изображение, пока вы его не прочитаете полностью. однако существует много вопросов по одному и тому же заголовку, ни один из них не работает, и я хочу решить свою конкретную проблему. Пожалуйста помоги.process.waitforexit hangs
Я работаю над приложением C# 4.0 Asp.Net, На веб-странице при нажатии кнопки я хочу создать exe. Так что я использую devenv.exe, но он зависает на process.waitforexit.
Это работало более 7 месяцев, но до двух дней внезапно он прекратил работать. Он также работает на localhost, после публикации на сервере он не работает. код ниже
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = "C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\Common7\\IDE\\devenv.exe";
process.StartInfo.Arguments = @"D:\ProjFolder\xxx.sln /rebuild";
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.ErrorDialog = false;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.RedirectStandardOutput = true;
OutputMsg = "";
if (!process.Start())
{
OutputMsg = "failed.</br>";
OutputMsg += process.StandardError.ReadToEnd();
HttpContext.Current.Response.Write(OutputMsg);
return false;
}
// Some people said that this is buffer problem, you should release it by reading
// output, i used "ReadToEnd" that is not working, so trying this again, and also it
// is not working
//while (!process.StandardOutput.EndOfStream)
//{
//string outputmsg = process.StandardOutput.ReadLine();
//HttpContext.Current.Response.Write(outputmsg);
//}
//string output = process.StandardOutput.ReadToEnd();
process.WaitForExit(60000);
if (process.HasExited)
{
OutputMsg = "Succeeded.";
HttpContext.Current.Response.Write(OutputMsg);
}
else
{
OutputMsg = "Process not completed properly.";
process.Kill();
HttpContext.Current.Response.Write(OutputMsg);
return false;
}
Выйти на конечность здесь, но, может быть, ваш фактический путь к проекту содержит пробелы в его имени? – Rotem
«Не помещайте вниз, пока вы не прочитаете его полностью» - вы уверены, что так вы хотите, чтобы люди действовали? Я думаю, у вас там слишком много негативов. –
Кроме того, я почти уверен, что вы не собираетесь запускать визуальную студию на веб-сервере. Любая причина, по которой вы использовали VS, а не только инфраструктуру MSBUILD? –