Try https://linuxlink.timesys.com website. It provides a free custom Linux kernel based os creation (you get a tarbal with files and a vmlinuz image separate) to use in a custom built system. It is a good solution for embedded development where you need a solid and stable operating system.
As for C#.Net, I know that there are C# compilers for Linux platforms, but as for .NET I don't think so, but there are other libraries that you can use for developing applications with C#.
If I recall correctly, YOCTO is no more than a set of tools that ease the process of collecting, cross-compilin and populating a system tree. If you know enough of linux you can do this by hand, I've done this several time when I was younger, (and yocto wasn't there), it's not that difficult if there's is no X system.
Another thing to consider is the target architecture, if it's not x86 it could add some difficulties to set up the development environment. Maybe take a look at "code sourcery" or any other "linux embedded" solution providers (lynuxworks...), but solutions they provide are generally expensive.
If you're using an evalboard (ARM toys are in hype these days), my guess is the board manufacturer (or the CPU one) sometimes provide a linux OS which can be customized. Often, in embedded world, the file system where reside the system files is not writable (ramdisk), it's an archive that is extracted into the RAM emulating a hard-drive. So adding a binary is "just" getting the archive from your board, add your binary (and the libraries it used), then flashing it back...
IMO, if your product won't evolve during its life time, using YOCTO isn't mandatory, otherwise it's a great tool to manage updates, packages dependencies, versions in the wild...
C#/.Net is another story, I don't know that much about them but the .Net equivalent for linux is called MONO.