Actually frob, no, this is unrelated to that.
I'm just writing a program, and I don't want anyone to be able to know how it works, so I don't like the fact that .NET keeps all the variable names still in the EXE file (presumably for reflection purposes).
And also, I don't want anyone to know that I made the program, or various other files that the I or my program writes, hence the author name change, so I can be anonymous. Isn't there some function that I can just import? Why wouldn't there be?
As for the compilation to machine language, that's partially to obfuscate, but mostly it's because I'm afraid that my program may end up being executed on a computer that for whatever reason might not have .NET runtimes, and I don't know what version of Windows will be on it, but I know it should run fine as a machine language EXE.
Incidentally, I've had the necessary .NET stuff installed on my computer for years, so I haven't really had to deal with that in a long time, but just in case I need to distribute it as a .NET EXE, if I remember correctly:
- all that a computer needs to run .NET programs is to have the .NET runtime installed, right?
- Are the runtime versions backward compatible, so my program will work on it even if it was written in an older version of .NET?
- Is a computer necessarily going to already have the runtime installed if it's running, say, Windows 7, even a simple edition?
- If it doesn't, is there an easy way to get and install it, even if an old runtime version is needed?