I have a C# WinForms project in Visual Studio 2019, and I am trying to turn my finished code into something that a user can just download (don't mind what file type, just something that works on Windows).
I have seen this thread and the first answer, however that was from 2013 and used VS2008, which has long been changed.
Please note I would like to do this through Visual Studio, not third party software like WiX or the like.
I am using Visual Studio 2019 Community Edition
The best way is to create a setup package, it can be an MSI, EXE or MSIX. You can do this directly from Visual Studio, without using any third party software.
You can create an MSI or EXE using Microsoft's Installer Project template. This is recommended if you are targeting users running on olders OSes like Windows 7/8, etc... or if your application has deep system integrations, like services, shell menu extensions, etc... or it simply needs to be installed per machine (for all users)
If you are targeting only Windows 10 users (1709 or newer) and your application dos not require administrative APIs (resources like services, shell, etcc or sharing files with other applications) you could use Microsoft's support to build MSIX packages.
Deploying and updating and MSIX is much simpler both for you and for the end-users, but it comes with some limitations, as mentioned above, for security reasons.
Also, MSIX requires all setup packages to be digitally signed. You can use a code signing certificate purchased from a certified vendor or your can generate your own certificate (but this needs to be accepted by the end-user machines, so you need a way to deploy this certificate to their machines before giving them the MSIX. If you are inside an enterprise network, this can be easily done, for home users is not recommended).
If you are interested in MSIX, let me know and I can give you more details about digital signing or other questions you might have.