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;
            }

  • 相关阅读:
    linq获取最大ID值
    asp:MultiView选项卡控件,可以用来选择性的显示需要的部门
    TFS修改工作区映射区
    怎么解决javascript小数相减会出现一长串的小数位数?
    (转)向页面动态载入用户控件和自定义控件的方法(谨记)
    (转)工作经验到底是个什么东东?工作经验从哪里来?
    hdu 5441 travel 离线+带权并查集
    hdu 5438 Ponds dfs
    hdu 5437 Alisha’s Party 模拟 优先队列
    CF 500 B. New Year Permutation 并查集
  • 原文地址:https://www.cnblogs.com/059212315/p/2307850.html
Copyright © 2011-2022 走看看