c# 程序发布后 proccess 重定向输出 无值,调试状态一切正常!!求解!!
编译的程序在我电脑上调试时候一切正常,发布后,别人电脑安装后运行不正常,重定向输出无值,求解!!以下为部分代码求大侠指导!!
string teqcComLine0 = teqcPath;
string teqcComLine1 = "teqc.exe" + " +qc " + teqcPath + "\\" + Ofname;
Process teqcProcess = new Process();
teqcProcess.StartInfo.FileName = "cmd.exe ";
teqcProcess.StartInfo.UseShellExecute = false;
teqcProcess.StartInfo.CreateNoWindow = true;
teqcProcess.StartInfo.RedirectStandardInput = true;
teqcProcess.StartInfo.RedirectStandardOutput = true;
teqcProcess.StartInfo.RedirectStandardError = true;
teqcProcess.Start();
teqcProcess.StandardInput.WriteLine(teqcComLine0);
teqcProcess.StandardInput.WriteLine(teqcComLine1);
teqcProcess.StandardInput.WriteLine("exit");
while (!teqcProcess.StandardOutput.EndOfStream)
{
string temp = teqcProcess.StandardOutput.ReadLine();
if (temp.Contains("SUM"))
{
teqcCheck = temp;
break;
}
}
string temp1 = teqcProcess.StandardOutput.ReadToEnd();
teqcProcess.WaitForExit();
teqcProcess.Close();
teqcCheck = teqcCheck.Substring(58, 3).Trim() + "%"; 调试 发布 dos process重定向输出 --------------------编程问答-------------------- 在不能正常运行的电脑上面手动执行下这个命令,然后看输出 --------------------编程问答-------------------- 手动输出没问题,因为是输出到文件,我这因为使用Process重定向输出,这里有问题,异常输出 teqcCheck值为空,但是我在
while (!teqcProcess.StandardOutput.EndOfStream)
{
string temp = teqcProcess.StandardOutput.ReadLine();
MessageBox.Show(teqcProcess.StandardOutput.ReadLine());
if (temp.Contains("SUM"))
{
teqcCheck = temp;
break;
}
}
添加了一个,MessageBox.Show(teqcProcess.StandardOutput.ReadLine());
别人电脑显示发送的命令,但是重定向输出的流没有,为什么呢? 打包输出时,依赖性有问题么? --------------------编程问答-------------------- 编译的时候 选x86试试·· --------------------编程问答-------------------- 一直都是用x86的,刚才有测试了,问题还是出在重定向输出 --------------------编程问答-------------------- while (!teqcProcess.StandardOutput.EndOfStream) 你这里已经读到了流的最后,下面的string temp1 = teqcProcess.StandardOutput.ReadToEnd(); 这个肯定输出为空了 --------------------编程问答-------------------- 是不是需要异步读取? --------------------编程问答--------------------
if (temp.Contains("SUM"))
{
teqcCheck = temp;
break;
}
已经给teqcCheck 赋值了,这个程序在我的电脑上调试都正常运行,发布后另外的电脑,异常提示值为空,我也经过多次测试了,确定这里出问题了!
补充:.NET技术 , C#