For .NET, there are many third-party static linkers that will create a single executable. Find ".NET Static Linker" in your favorite search engine. Most of them also confuse your code as an added benefit to complicate reverse engineering back to readable source code.
I have not tried any of them, so you have no specific recommendation.
There is also an article on the Code Project that talks about how to achieve the same goal using the framework tools.
source share