OP asked how.
The answer was, quote "If you want a single-file exe (as in completely statically compiled without self-extraction) that's a bit more advanced and requires a few properties in the csproj to configure how to handle native assemblies that expect to exist on disk. If you want it to have no runtime dependencies, add `--self-contained`"
Somehow creating an exe is "more advanced", and requires changing of unspecified parameters in the project file. wat.
I'm talking about creating a single-file application, which is just an end-user nice-to-have if you aren't using an installer or deployment system.
Don't most applications have a bunch of ancillary files? I rarely see installed applications on any platform that are a single file.
.NET Core is cross platform, it was created with ASP.Net as the driver and web development is not about exe files. "dotnet run" runs your code, on any platform, that's one of the default intended ways to run code. If you want a platform-specific executable you've done more work and made the code less general. If you also want to package the entire .Net framework into one binary on any platform, why is it unbelievably impossible to understand that this is more effort and desired by fewer people, so isn't as easy to do?