The source code IS the executable, RTM edition [Updated CSI, a C# interpreter (with source and tests) for .NET 4 RTM]
CSI is a simple C# interpreter and has been available for .NET 1.1, 2.0, 3.0, and 3.5 for a while now. Earlier this year, I updated CSI for .NET 4 Beta 2, and now I've (somewhat belatedly) updated it for the final, public .NET 4 Framework. Today's post is mainly about getting an official .NET 4 RTM-compiled build of CSI released, so there aren't any functional changes to the tool itself.
FYI: I have a TODO list and there are some interesting things on it - it's just that none of them seemed particularly urgent.
The links above explain what CSI is and how it works; the executive summary is that CSI offers an alternative to typical CMD-based batch files by enabling the use of the full .NET framework and stand-alone C# source code files for automating simple, repetitive tasks. It accomplishes that by compiling source code "on the fly" and executing the resulting assembly behind the scenes. The benefit is that it's easy to represent tasks with a simple, self-documenting code file that leaves no need to worry about compiling a binary, trying to keep it in sync with changes to the code, or tracking project files and remembering how to build everything.
Notes:
- The copy of
CSI.exe
in the root of the download ZIP is now the .NET 4 version because that's the latest public .NET Framework. Previous versions of CSI can be found in thePrevious Versions
folder:CSI11.exe
,CSI20.exe
,CSI30.exe
, andCSI35.exe
. - As with the previous release, I have not re-compiled the .NET 1.1 version,
CSI11.exe
- largely because I don't have .NET 1.1 installed anywhere.:)
Here's the "read me" file for a slightly better idea of how CSI works:
==================================================== == CSI: C# Interpreter == == David Anson (http://blogs.msdn.com/b/delay/) == ==================================================== Summary ======= CSI: C# Interpreter Version 2010-06-07 for .NET 4.0 http://blogs.msdn.com/b/delay/ Enables the use of C# as a scripting language by executing source code files directly. The source code IS the executable, so it is easy to make changes and there is no need to maintain a separate EXE file. CSI (CodeFile)+ (-d DEFINE)* (-r Reference)* (-R)? (-q)? (-c)? (-a Arguments)? (CodeFile)+ One or more C# source code files to execute (*.cs) (-d DEFINE)* Zero or more symbols to #define (-r Reference)* Zero or more assembly files to reference (*.dll) (-R)? Optional 'references' switch to include common references (-q)? Optional 'quiet' switch to suppress unnecessary output (-c)? Optional 'colorless' switch to suppress output coloring (-a Arguments)? Zero or more optional arguments for the executing program The list of common references included by the -R switch is: System.dll System.Data.dll System.Drawing.dll System.Windows.Forms.dll System.Xml.dll PresentationCore.dll PresentationFramework.dll WindowsBase.dll System.Core.dll System.Xml.Linq.dll Microsoft.CSharp.dll System.Xaml.dll CSI's return code is 2147483647 if it failed to execute the program or 0 (or whatever value the executed program returned) if it executed successfully. Examples: CSI Example.cs CSI Example.cs -r System.Xml.dll -a ArgA ArgB -Switch CSI ExampleA.cs ExampleB.cs -d DEBUG -d TESTING -R Notes ===== CSI was inspired by net2bat, an internal .NET 1.1 tool whose author had left Microsoft. CSI initially added support for .NET 2.0 and has now been extended to support .NET 3.0, 3.5, and 4.0. Separate executables are provided to accommodate environments where the latest version of .NET is not available. Version History =============== Version 2010-06-07 Update .NET 4 (RTM) version Make .NET 4 version primary Version 2010-01-04 Add .NET 4 (Beta 2) version Minor updates Version 2009-01-06 Initial public release Version 2005-12-15 Initial internal release