zoukankan      html  css  js  c++  java
  • 在ASP.NET中运行控制台程序

    解决一个问题后,最好的庆祝方式就是写一篇博客。今天解决了一个小问题,小小庆祝一下。

    这个小问题是什么?

    答:如何在ASP.NET调用MsBuild编译一个VS2010解决方案?

    是什么需求带来的这个问题?

    答:发布一个网站的新版本时,通过浏览器触发Web服务器从Git版本控制服务器中取出最新代码,然后调用MsBuild进行编译。。。

    如何解决这个小问题的:

    答:在ASP.NET中通过System.Diagnostics.Process运行msbuild.exe。

    代码如下:

    <%@ Page Language="C#" AutoEventWireup="true" %>
    <%@ Import Namespace="System.Diagnostics" %>
    <script runat="server">
    protected override void OnInit(EventArgs e)
    {
    string filePath = @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe";
    //以release方式编译CNBlogsJob.sln
    ProcessStartInfo info = new ProcessStartInfo(filePath, @" E:\Dev\CNBlogsJob.sln /p:Configuration=release");
    //将控制台输出重定向至StandardOutput,如果为false,就无法得到控制台输出结果
    info.RedirectStandardOutput = true;
    info.UseShellExecute
    = false;
    Process p
    = Process.Start(info);
    //下面一行代码是为了模拟控制台的显示效果
    Response.Write("<body style=\"color:#DDD;background-color:#000;\">");
    //控制台输出结果
    Response.Write(p.StandardOutput.ReadToEnd().Replace("\n","<br/>"));
    Response.Write(
    "</body>");
    p.WaitForExit();
    p.Close();

     }
    </script>

    浏览器中显示的结果:

  • 相关阅读:
    浅谈C#托管程序中的资源释放问题
    c#基本语法学习笔记
    深入剖析C#多态性
    Reporting Services API
    进程和线程的区别
    化妆品网站,饰品网站
    宠物销售网站
    卖地方特色才产品,类似湖南味道那样的网上专卖店
    建立友情链接联盟
    DIY最残忍U盘
  • 原文地址:https://www.cnblogs.com/dudu/p/asp_net_console.html
Copyright © 2011-2022 走看看