首先是ProcessStartInfo的几个重要属性。

1. FileName: 可以是可执行文件的全路径,或者只是文件名(会在PATH的指定路径下面或者WorkingDirectory,或者当前目录去找)

2. UseShellExecute: 是否用外壳去运行该可执行文件,如果是的话,可以运行任何可执行文件(与之相关联的,具有默认打开操作的注册文件类型)。如果是false,则只能用            Process组件启动

3. RedirectStandardOutput: 可以将process的输出重定向到StandardOutput (UseShellExecute必须为False)。

public static void RunMSBuild()
        {
            Process p = new Process();
            p.StartInfo.FileName = "MSBuild.exe";
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.RedirectStandardOutput = true;
            p.Start();

Console.WriteLine(p.StandardOutput.ReadToEnd() + p.StartInfo.WorkingDirectory);

p.WaitForExit();
        }

上面的代码,如果不重定向,那么MSBUILD的信息会直接输出到当前的控制台。如果重定向,那么在该流读取完成或者关闭前,子进程会一直等待退出。

注意:

不能在ReadToEnd之前调用WaitForExit, 在这种情况下,如果子进程写入足够多的文本填充重定向流,就会产生死锁情况。父进程一直等待子进程退出,而子进程一直等待父进程读取全部StandardOutput流。

Process的使用相关推荐

  1. 使用Java监控工具出现 Can't attach to the process

    问题重现 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ➜ jinfo -flags 3032 Attaching ...

  2. Mr. Process的一生-Linux内核的社会视角 (2)启动

    原文地址: http://www.manio.org/cn/startup-of-linux-view-of-society.html 其实这才应该是这一系列文章的第一节,因为这篇文章讲的是盘古开天地 ...

  3. 【linux】在CentOS7上更改端口号时报错:Job for sshd.service failed because the control process exited with error

    1.问题描述 在在CentOS7上更改端口号时报错: Job for sshd.service failed because the control process exited with error ...

  4. 【Qt】ubuntu14.04.5 qt5.6中使用opencv3.4报错:Using GTK+ 2.x and GTK+ 3 in the same process is not supported

    问题描述 ubuntu14.04.5 qt5.6中使用opencv3.4报错: Using GTK+ 2.x and GTK+ 3 in the same process is not support ...

  5. 守护进程中创建的对象php,在PHP中生成守护进程(Daemon Process)

    前两天看到一篇文章<如何使用PHP编写daemon process>,其中对核心代码却没有细说,我又查了一些资料,还看了一本<理解Unix进程>,才搞明白生成守护进程的时候发生 ...

  6. template.process(root, out)的用法(shiro项目中来的九)

    假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情 ...

  7. Error:Execution failed for task ':app:dexDebug'. com.android.ide.common.process.ProcessException

    异常Log: Error:Execution failed for task ':app:dexDebug'.  > com.android.ide.common.process.Process ...

  8. symfony2 Process 组件的学习笔记

    2019独角兽企业重金招聘Python工程师标准>>> 安装 composer require "symfony/process:2.7.1" ##描述 proc ...

  9. 用计算机的英语造句process,process的用法总结大全

    process的意思 n. 过程,工序,做事方法,工艺流程 vt. 加工,处理,审阅,审核 vi. 列队行进 adj. 经过特殊加工(或处理)的 变形:过去式: processed: 现在分词:pro ...

  10. 关于v$process与v$session中process的理解

    v$session有个process字段,V$PROCESS有个SPID字段,这两个字段是不是一个意思呢?是不是都代表会话的操作系统进程呢? 官方文档上的解释: SPID      VARCHAR2( ...

最新文章

  1. GStreamer 1.18.4稳定的错误修复版本
  2. JAVA基础14-Java接口及其使用
  3. html掷骰子小游戏,网页实现掷骰子小游戏
  4. 信号在PCB传播速度SDRAM布线(sdram布线距离主控的距离)
  5. 数据结构与算法 / 字符串匹配 / BF、PK 算法
  6. Java利用Jakson实现序列化与反序列化操作
  7. String类及其构造器和常用方法
  8. IOS登陆+注册+抽奖+排行榜
  9. python改文件名_python批量修改文件名、批量修改xml文件的path和filename
  10. android ui设计当前不同版本的变化,Android 4.0设计规范 十大界面改变
  11. Jquery第一章基础、过滤、层次选择器第二节1/2
  12. visibility和hidden
  13. 翻译:Vim从入门到精通 Mac OS
  14. 互联网晚报 | 9/28星期三 | 微信退群可选保留聊天记录 ;iPhone 14 Pro被吐槽信号差;​贾跃亭率获1亿美元融资...
  15. Restlet实战(一)Restlet入门资料及概念
  16. 华为面试题(笔试,8分钟写出代码)
  17. 浅谈AI芯片的简要发展历史
  18. 雪花漂浮php,h5canvas实现雪花飘落的特效代码
  19. LeetCode 6036. 构造字符串的总得分和
  20. 怀旧服为什么显示服务器不兼容,《魔兽世界怀旧服》加载出错怎么办 加载出错解决方案...

热门文章

  1. 利用ArcGIS做一张“三调“土地利用现状图(附三调符号库下载)
  2. android-实现一个简单的视频弹幕,Android已死
  3. 计算机启动后花屏然后无信号,电脑开机屏幕显示无信号输入的解决方法
  4. 黑客们为什么不攻击淘宝?
  5. python:pygame制作中国象棋
  6. 第九章(6)--多元函数微分学的几何应用
  7. Java构建工具:Ant vs Maven vs Gradle
  8. 智慧灯杆网关的单灯控制与边缘计算功能
  9. ad禁用计算机账户命令,AD-禁用账户命令 Disable-ADAccount
  10. c++ 家谱管理系统项目文档