A compiler creates an object file, and a linker creates an executable.
The Visual Studio compilers and SDK can be downloaded for free from the Microsoft web site (Visual Studio IDE itself is a premium product that you have to pay for)
If you don't want that then there are free compilers for Windows, MinGW being one.

I don't know anything about setup programs but if you search MSDN for "msi" (the install set extension) that should take you to some relevant pages.

Also I don't know if there are any cross compilers that run on Linux to generate programs that run on Windows, cos that's what you're asking for. Probably best to develop Windows programs on a Windows machine.