To start with this is maybe a vague question and it might not have a well-structured answer, so it may not comply with SO rules.
So far I have written several rather small applications but all of them consisted of an executable file that would run "as is". This means that the actual application didn't require any installation to use beforehand, you could simply download the file online, run it and you are set to go.
Most of the applications online require you to download an installer. Then you set some preferences (namely where you want to place the files of the application, who is the main user etc) and when you are done the installation starts unzipping(?) the files required to actually run the application.
I suppose that the installer is a wrapper that includes your code and/or any other resources you may be utilizing. Can anyone guide me to some relevant info about this process? I do not have a relative problem, maybe it's not clear what I am asking, I am just curious as how things work.