Accessing compiler error messages from web page that runs batch file

Discussion in 'ASP .Net' started by Jon Maz, Dec 14, 2004.

  1. Jon Maz

    Jon Maz Guest

    Hi All,

    To allow myself to make development changes directly on a remote server
    *without* having to compile on my local dev machine and then upload the
    dll's to remote, I have created a RunBatch.aspx on the remote which calls a
    batch file (myBuild.bat) on the same machine, and this batch file executes
    the necessary command-line compiler instructions to recompile (code below).

    So far (fingers crossed) it seems to be working. The only thing I'm
    missing, but would really like access to, is any compiler error messages
    that may arise. Does anyone have any ideas how RunBatch.aspx could get hold
    of those error messages from csc.exe (or from cmd.exe, I'm not actually
    entirely sure where they are), and print those out to the screen?

    Thanks!

    JON

    PS No Visual Studio in this setup, before anyone asks!

    **************
    RunBatch.aspx
    **************

    Process myProcess = new Process();
    myProcess.EnableRaisingEvents = true;
    myProcess.StartInfo.FileName = @"c:\Inetpub\wwwroot\myBuild.bat";
    myProcess.StartInfo.WorkingDirectory = "C:/";
    myProcess.StartInfo.Arguments = "file.txt -s -m";
    myProcess.Start();
    myProcess.WaitForExit();
    Response.Write("myProcess.ExitCode: " + myProcess.ExitCode + "<br>");


    ************
    myBuild.bat
    ************

    REM Compile data layer
    C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe /t:library
    /out:C:\Inetpub\wwwroot\myProject\myProject_data\obj\myProject_data.dll
    C:\Inetpub\wwwroot\myProject\myProject_data\*.cs /r:System.web.dll
    /r:System.dll /r:System.Data.dll /r:System.Web.dll /r:System.XML.dll

    REM Compile business layer
    C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe /t:library
    /out:C:\Inetpub\wwwroot\myProject\myProject_business\obj\myProject_business.
    dll C:\Inetpub\wwwroot\myProject\myProject_business\*.cs
    /r:System.web.dll /r:System.dll /r:System.Data.dll /r:System.Web.dll
    /r:System.XML.dll /r:System.XML.dll /r:myProject_data.dll
    /lib:C:\Inetpub\wwwroot\myProject\myProject_data\obj\

    REM Copy business & data dll's to pres layer bin folder
    COPY C:\Inetpub\wwwroot\myProject\myProject_data\obj\myProject_data.dll
    C:\Inetpub\wwwroot\myProject\myProject\bin\ /Y
    COPY
    C:\Inetpub\wwwroot\myProject\myProject_business\obj\myProject_business.dll
    C:\Inetpub\wwwroot\myProject\myProject\bin\ /Y

    REM Compile presentation layer
    C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe /t:library
    /out:C:\Inetpub\wwwroot\myProject\myProject\bin\myProject.dll
    /recurse:C:\Inetpub\wwwroot\myProject\myProject\*.cs
    /r:System.web.dll /r:System.dll /r:System.Data.dll /r:System.Web.dll
    /r:System.XML.dll /r:System.XML.dll /r:myProject_data.dll
    /r:myProject_business.dll
    /lib:C:\Inetpub\wwwroot\myProject\myProject_data\obj\,C:\Inetpub\wwwroot\myP
    roject\myProject_business\obj\
    Jon Maz, Dec 14, 2004
    #1
    1. Advertising

  2. Jon,

    You can use the Compiler class in the Microsoft.CSharp namespace. You
    can set a reference to cscompmgd.dll, and then access it programatically.

    It should be noted that this will be marked as Obsolete in .NET 2.0.
    I'm not sure what replaces it (although I am sure there will be something).

    Hope this helps.

    --
    - Nicholas Paldino [.NET/C# MVP]
    -


    "Jon Maz" <> wrote in message
    news:...
    > Hi All,
    >
    > To allow myself to make development changes directly on a remote server
    > *without* having to compile on my local dev machine and then upload the
    > dll's to remote, I have created a RunBatch.aspx on the remote which calls
    > a
    > batch file (myBuild.bat) on the same machine, and this batch file executes
    > the necessary command-line compiler instructions to recompile (code
    > below).
    >
    > So far (fingers crossed) it seems to be working. The only thing I'm
    > missing, but would really like access to, is any compiler error messages
    > that may arise. Does anyone have any ideas how RunBatch.aspx could get
    > hold
    > of those error messages from csc.exe (or from cmd.exe, I'm not actually
    > entirely sure where they are), and print those out to the screen?
    >
    > Thanks!
    >
    > JON
    >
    > PS No Visual Studio in this setup, before anyone asks!
    >
    > **************
    > RunBatch.aspx
    > **************
    >
    > Process myProcess = new Process();
    > myProcess.EnableRaisingEvents = true;
    > myProcess.StartInfo.FileName = @"c:\Inetpub\wwwroot\myBuild.bat";
    > myProcess.StartInfo.WorkingDirectory = "C:/";
    > myProcess.StartInfo.Arguments = "file.txt -s -m";
    > myProcess.Start();
    > myProcess.WaitForExit();
    > Response.Write("myProcess.ExitCode: " + myProcess.ExitCode + "<br>");
    >
    >
    > ************
    > myBuild.bat
    > ************
    >
    > REM Compile data layer
    > C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe /t:library
    > /out:C:\Inetpub\wwwroot\myProject\myProject_data\obj\myProject_data.dll
    > C:\Inetpub\wwwroot\myProject\myProject_data\*.cs /r:System.web.dll
    > /r:System.dll /r:System.Data.dll /r:System.Web.dll /r:System.XML.dll
    >
    > REM Compile business layer
    > C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe /t:library
    > /out:C:\Inetpub\wwwroot\myProject\myProject_business\obj\myProject_business.
    > dll C:\Inetpub\wwwroot\myProject\myProject_business\*.cs
    > /r:System.web.dll /r:System.dll /r:System.Data.dll /r:System.Web.dll
    > /r:System.XML.dll /r:System.XML.dll /r:myProject_data.dll
    > /lib:C:\Inetpub\wwwroot\myProject\myProject_data\obj\
    >
    > REM Copy business & data dll's to pres layer bin folder
    > COPY C:\Inetpub\wwwroot\myProject\myProject_data\obj\myProject_data.dll
    > C:\Inetpub\wwwroot\myProject\myProject\bin\ /Y
    > COPY
    > C:\Inetpub\wwwroot\myProject\myProject_business\obj\myProject_business.dll
    > C:\Inetpub\wwwroot\myProject\myProject\bin\ /Y
    >
    > REM Compile presentation layer
    > C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe /t:library
    > /out:C:\Inetpub\wwwroot\myProject\myProject\bin\myProject.dll
    > /recurse:C:\Inetpub\wwwroot\myProject\myProject\*.cs
    > /r:System.web.dll /r:System.dll /r:System.Data.dll /r:System.Web.dll
    > /r:System.XML.dll /r:System.XML.dll /r:myProject_data.dll
    > /r:myProject_business.dll
    > /lib:C:\Inetpub\wwwroot\myProject\myProject_data\obj\,C:\Inetpub\wwwroot\myP
    > roject\myProject_business\obj\
    >
    >
    >
    >
    >
    >
    Nicholas Paldino [.NET/C# MVP], Dec 14, 2004
    #2
    1. Advertising

  3. Jon Maz

    Jon Maz Guest

    Hi Nicholas,

    Thanks for the tip, that's something new for me, I'll look into that
    tomorrow from work.

    If anyone has any relevant code samples or url's, it'll be much appreciated!

    Cheers,

    JON







    ---
    Outgoing mail is certified Virus Free.
    Checked by AVG anti-virus system (http://www.grisoft.com).
    Version: 6.0.809 / Virus Database: 551 - Release Date: 09/12/2004
    Jon Maz, Dec 14, 2004
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Yan
    Replies:
    0
    Views:
    1,119
  2. Reny J Joseph Thuthikattu
    Replies:
    1
    Views:
    546
    =?Utf-8?B?UHJha2FzaC5ORVQ=?=
    Dec 30, 2004
  3. Ram
    Replies:
    0
    Views:
    2,820
  4. Baron Samedi
    Replies:
    2
    Views:
    863
    Alexander Block
    Mar 26, 2007
  5. Daniel
    Replies:
    3
    Views:
    335
    Pascal J. Bourguignon
    May 15, 2009
Loading...

Share This Page