我在使用using (var uow = new UnitOfWork())
{
using (var repo = new Repository(uow))
{
if (repo.UpdateStuff())
{
uow.Save();
}
}
}
实用程序(IarBuild.exe
cmd实用程序构建项目时构建项目时尝试获取输出)
我使用简单的IAR
脚本:
IronPython
在我的情况下"输出"总是空的(" StandardError"也是空的)。 如果我尝试在命令行中执行相同的应用程序(" cmd.exe"),则会成功显示输出。
可能问题与某些操作系统设置(或其他安装的应用程序所做的更改)有关,因为当我尝试在其他虚拟机(同一操作系统)上执行相同的脚本时, process = System.Diagnostics.Process()
process.StartInfo.FileName = path_process
process.StartInfo.Arguments = command_line_arguments
process.StartInfo.RedirectStandardError = True
process.StartInfo.RedirectStandardOutput = True
process.StartInfo.RedirectStandardInput = True
process.StartInfo.UseShellExecute = False
process.StartInfo.CreateNoWindow = True
process.Start()
output = process.StandardOutput.ReadToEnd()
process.WaitForExit()
return {"Exit code": process.ExitCode, "Output": output}
就可以了。< / p>
当我使用&#34; subprocess.call()&#34;时,我得到了相同的结果。方法而不是&#34; System.Diagnostics.Process()&#34;
答案 0 :(得分:0)
当你传递参数时。看来你传递了三个参数:
1)C:\ test \ test.ewp 2) - 构建调试 3) - 日志信息 但是它们被认为是6个参数,因为它们包含空格。
使用
command_line_arguments = "\"C:\\test\\test.ewp\" \"-build Debug\" \"-log info\""
我可能错了。如需进一步参考,请查看https://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.arguments(v=vs.110).aspx