- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
这有点痛苦,因为我现在面前没有代码,但我会尽力解释。
我有一个启动 Ruby 脚本的简单 C# 应用程序(它还做了一些其他事情,因此它生成了一个批处理文件并执行了)。
我正在使用 C# 进程对象并设置了以下内容重定向标准输出=真重定向标准错误 = 真UseShellExecute = falseCreateNoWindow = true(可爱的倒退逻辑!)
然后我创建两个线程并为错误流和输出流轮询 ReadLine(),等待它们完成后再调用 WaitForExit()。
现在,无论我做什么,当我重定向输出时,我的 Ruby 脚本都无法调用 system("xcopy...") 命令(没有生成错误,它只是不复制)。它也不会复制我要求它复制的其他文件。
如果我将两个流都指向一个线程,其中一个,只重定向其中一个并调用 ReadToEnd(),就会发生这种情况。
只有当我将 redirectstandardoutput 和 redirectstandarderror 设置为 false 时它才能正常工作。
我在这里完全不知所措。我想也许输出流被填满了,但我无法想象如果我调用 ReadLine 为什么(我需要读取行以便我可以解析每一行并只向最终用户呈现相关的行)。我还认为从线程 C# 进程调用 dos 命令可能会导致问题。
有人知道这里会发生什么吗?我应该说我使用的是 VS .net 2005,我认为它是 .Net Framework 2.0。
最佳答案
有一个obscure post on the MSDN forums这似乎表明 XCOPY 本身可能存在故障——如果您重定向 XCOPY 的 STDOUT,则还必须重定向 STDIN。
(注意:我将其标记为社区 wiki,因此了解 ruby 的人可以编写一些示例代码来重定向 system() 的 STDIN)
关于c# - 为什么 C# ProcessStartInfoRedirectStandardOutput 会导致 xcopy 进程失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/567912/
这有点痛苦,因为我现在面前没有代码,但我会尽力解释。 我有一个启动 Ruby 脚本的简单 C# 应用程序(它还做了一些其他事情,因此它生成了一个批处理文件并执行了)。 我正在使用 C# 进程对象并设置
我是一名优秀的程序员,十分优秀!