>In the IL, it's only "IL_0005". No MS, No Linux, just 0005.
I believe IL_0005 is the byte offset to the instruction, not the actual instruction. If you want the actual code of the instruction the it looks like -
Code:
.method private hidebysig static void 'Main'(string[] 'args') cil managed
// SIG: 00 01 01 1D 0E
{
.entrypoint
// Method begins at RVA 0x2050
// Code size 17 (0x11)
.maxstack 8
IL_0000: /* 28 | (0A)00000D */ call int32 ['mscorlib']'System'.'Console'::'Read'()
IL_0005: /* 26 | */ pop
IL_0006: /* 72 | (70)000001 */ ldstr "Hello, World!"
IL_000b: /* 28 | (0A)00000E */ call void ['mscorlib']'System'.'Console'::'WriteLine'(string)
IL_0010: /* 2A | */ ret
} // end of method 'Class1'::'Main'
Also, the exe has hard coded references to mscorlib, so it's not just generated by the disassembler.