If you are using an appropriate level of .NET (you haven't said which version you are using, so I'm going to demonstrate how you can do this with newer versions of .NET), you can publish your application as a self contained executable using a command that looks like this:
dotnet publish -c Release -r win-x64 --self-contained true
The output will be in a subdirectory of your project's bin/Release folder and, while creating a larger deployment package, this ensures your application can run on machines without .NET installed. I prefer to amend the publish command slightly to remove unnecessary items by adding
/p:PublishTrimmed=true
to the publish command.
In my example, I demonstrated releasing to a 64 bit Windows machine using
win-x64
, but you can choose to publish to other targets using different runtime identifiers, so if you wanted to publish to 64 bit Linux, you would replace
win-x64
with
linux-x64
.
[Edit]The tags hadn't appeared on my phone so I didn't see you were using .NET 4x. Unfortunately, this makes the approach you need to use more complicated. As you are using an older version of the framework, you are going to want to create an installer. Now, depending on the version of Visual Studio you are using, you may already have the Visual Studio installer creation tooling available. If not, a popular choice is
WIX toolset[
^] . You need these options because you are going to need to distribute the correct version of the .NET framework alongside your executable.