It makes no sense, .NET is fully supported on Linux and has been for years. There is an official SDK and it's capable of creating full standalone executables, or smaller ones requiring the runtime libraries to be installed on the target system. As far as I know good packages exist for just about any distro. .NET is fully open source and not just worked on by Microsoft, but a large community.
Creating a Linux executable from any .NET code is as simple as running a single command, it supports cross platform compilation as well. With support for a range of architectures and OSes.
The only caveat is all the code needs to be properly managed code, any unmanaged code is most likely not cross platform compatible and is thus not recommended. It can even break as drivers or the OS is updated for example, so it's a bad idea to have unmanaged code and usually not needed.
