zoukankan      html  css  js  c++  java
  • 自动编译.net项目

            /// <summary>
            /// 自动编译.net项目
            /// </summary>
            /// <param name="proccessMsg">返回处理进程消息</param>
            /// <returns>返回是否成功</returns>
            public static bool VsAutoComplie(IList<string> proccessMsg)
            {
                string processPath =  @"D:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe";
                string args = @" E:\work\CRMProject\QZH_CRM\QZH_CRM.sln /build Debug /out complile.log";
                string workingDirectory = @"E:\Work\Crm\Web";
                int code = StartProcess(proccessMsg, processPath, args, workingDirectory);
                return code == 0;
            }

            /// <summary>
            /// 执行外部程序
            /// </summary>
            /// <param name="proccessMsg">返回处理进程消息</param>
            /// <param name="processPath">设置外部程序名(包括程序路径)</param>
            /// <param name="args">设置外部程序的启动参数</param>
            /// <param name="workingDirectory">设置外部程序工作目录</param>
            /// <returns>外部程序在结束运行时的返回值</returns>
            public static int StartProcess(IList<string> proccessMsg, string processPath, string args, string workingDirectory)
            {
                //args = @" E:\Work\Crm\Crm.sln /build Debug /out complile.log";
                int WaitForExitInMilliseconds = 10 * 60 * 1000;//等待时间

                //声明一个程序信息类
                System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();

                //设置外部程序名
                Info.FileName = processPath;

                //设置外部程序的启动参数(命令行参数)
                Info.Arguments = args;

                //设置外部程序工作目录
                Info.WorkingDirectory = workingDirectory;

                //声明一个程序类
                System.Diagnostics.Process Proc = new System.Diagnostics.Process();

                try
                {
                    //启动外部程序
                    Proc = System.Diagnostics.Process.Start(Info);
                }
                catch (System.ComponentModel.Win32Exception ex)
                {
                    proccessMsg.Add(string.Format("系统找不到指定的程序文件。{0} ", System.Environment.NewLine + ex));
                }
                finally
                {

                    //打印出外部程序的开始执行时间
                    proccessMsg.Add(string.Format("外部程序的开始执行时间:{0} ", Proc.StartTime));

                    //等待时间
                    Proc.WaitForExit(WaitForExitInMilliseconds);

                    //如果这个外部程序没有结束运行则对其强行终止
                    if (Proc.HasExited == false)
                    {
                        proccessMsg.Add("由主程序强行终止外部程序的运行! ");
                        Proc.Kill();
                    }
                    else
                    {
                        proccessMsg.Add("由外部程序正常退出! ");
                    }
                    proccessMsg.Add(string.Format("外部程序的结束运行时间:{0} ", Proc.ExitTime));
                    proccessMsg.Add(string.Format("外部程序在结束运行时的返回值:{0} ", Proc.ExitCode));
                }
                return Proc.ExitCode;
            }

  • 相关阅读:
    WDM驱动加载方式理解
    应用程序与设备对象交换数据的三种方法
    IRP完成例程返回值理解
    关于IoCallDriver使用的疑惑
    Ring0打开其他设备对象三种方式整理
    DPC和ISR的理解
    Windows驱动开发技术详解HelloWDM例子win7下无法安装
    wdk中ramdisk代码解读
    内核编程键盘过滤几种方法思路整理
    IOAPIC重定位中断处理函数思路整理
  • 原文地址:https://www.cnblogs.com/059212315/p/2307850.html
Copyright © 2011-2022 走看看