By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,538 Members | 2,225 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,538 IT Pros & Developers. It's quick & easy.

Accessing compiler error messages from web page that runs batch file

P: n/a
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.e xe /t:library
/out:C:\Inetpub\wwwroot\myProject\myProject_data\ob j\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.e xe /t:library
/out:C:\Inetpub\wwwroot\myProject\myProject_busines s\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\ob j\

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

REM Compile presentation layer
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.e xe /t:library
/out:C:\Inetpub\wwwroot\myProject\myProject\bin\myP roject.dll
/recurse:C:\Inetpub\wwwroot\myProject\myProject\*.c s
/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\ob j\,C:\Inetpub\wwwroot\myP
roject\myProject_business\obj\


Jul 21 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
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]
- mv*@spam.guard.caspershouse.com
"Jon Maz" <jo****@surfeuNOSPAM.de> wrote in message
news:ei**************@TK2MSFTNGP09.phx.gbl...
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.e xe /t:library
/out:C:\Inetpub\wwwroot\myProject\myProject_data\ob j\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.e xe /t:library
/out:C:\Inetpub\wwwroot\myProject\myProject_busines s\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\ob j\

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

REM Compile presentation layer
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.e xe /t:library
/out:C:\Inetpub\wwwroot\myProject\myProject\bin\myP roject.dll
/recurse:C:\Inetpub\wwwroot\myProject\myProject\*.c s
/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\ob j\,C:\Inetpub\wwwroot\myP
roject\myProject_business\obj\


Jul 21 '05 #2

P: n/a
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
Jul 21 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.