With the release of .Net Core 3 and its support for single-file executables .Net now natively supports bundling of all files into a single executable (libraries, satellite assemblies and resources).
For now the .Net support is limited to platform-specific executables (see SingleFileConsole for an example) which means the executable defaults to ~60MB for a simple hello world project.
Using assembly linking it is possible to shrink such a hello world example to ~23MB at the cost of losing reflection capabilities (and having to manually specify needed assembly by rooting them).
As per the design document future versions of .Net may also support platform-dependent executables which should drastically reduce the executable size.