CLIのバイナリファイル仕様は決まってるかも知れんが、
ランタイムのAPIは何も決まってないんじゃないのか。
C#のコードとか見るとWIN32のAPIをばしばし呼んでるが、
ああいうのを例えばFreeBSDに持っていってどうやって動かすの?
WIN32SDK for FreeBSDを買わなきゃいけないんじゃないの?