You'll have a hard time making a simple, portable Microsoft .NET runtime, but there are alternatives.
If it's suitable, you could carry around a VM of some Windows OS with .NET installed, and transfer data in and out. Not ideal, but it's a clean way to run .NET apps for sure. But there is a nice alternative...
Mono is a free implementation of the .NET runtime for a number of platforms. The Windows version is a cinch to make portable. After installing it (Mono 1.9.1 in this case) to any location of your choosing, make a shortcut in the folder above it pointed at C:\WINDOWS\system32\cmd.exe /k ".\Mono-1.9.1\bin\setmonopath.bat". Although it appears to be an annoyance that a shortcut can't directly use a relative link, it doesn't matter, since we're planning to open a command prompt anyway (with a modified PATH variable). Now we need to modify setmonopath.bat to create our new MWD (Mono Working Directory).:
@echo off
echo Mono version 1.9.1 Build 2
SET MWD=%CD%\Mono-1.9.1
echo Prepending %MWD%\bin to PATH
PATH=%MWD%\bin;%PATH%
Now modify every batch file in the Mono /bin directoy, replacing every path up to and including MONO-1~1.1 with %MWD%.
If you installed Mono in the default location, cert2spc for example would change as follows:
Before:
@"C:\PROGRA~1\MONO-1~1.1\bin\mono.exe" "C:\PROGRA~1\MONO-1~1.1\lib\mono\1.0\cert2spc.exe" %*
After:
@"%MWD%\bin\mono.exe" "%MWD%\lib\mono\1.0\cert2spc.exe" %*
I've taken the liberty of creating a simple graphical demonstration app and running under Microsoft .NET (3.5, not that it mattered any) and Mono (1.9.1). See the results at http://bayimg.com/BAKopaaBH. If you follow this, you'll be able to execute .NET applications using your Mono environment without needing .NET installed. More so, Mono even comes with compilers for C# and VB.NET, and a Boo interpreter or translator by memory.
Bare in mind that Mono will always be playing catch-up to .NET, but it's quite capable. Certainly worth a look if you prefer free software, and this hackish approach. ;) There is another, free .NET implementation called DotGNU Portable.NET, but to be completely honest, I haven't looked at it at all; I've been following Mono for a long time and I'm more than pleased with it. Just figured I should throw that in for completeness though.
This is my first post on the forums btw, I only looked at them for the first time a few weeks back, but I've been watching Hak5 eps since the start. Keep up the great work guys. ;)
-Uda in Australia