title: Programmatically registering program into Add/Remove programs and storing files within an executable
body: <p>I am working on a windows c# console application which I want to allow the user to install on to their computer. </p>
  
  <p>I want to make my own Windows Installer executable as the Setup Deployment tools built into Visual Studio, appear to be somewhat lacking in functionality for customisations and documentation. </p>
  
  <p>Therefore, because I want to make my own Windows installer, how do I register my program into the Add/Remove Programs window so they can choose to uninstall it again if they wish and it relaunches my installer program to do the removal. </p>
  
  <p>Also as well, the executable would obviously need to copy the files into various locations on the PC, i.e. <code>C:\Program Files</code> so how would I store the executable files within the windows installer executable so I can move them into the right location.</p>
  
  <p>Is this possible to do?</p>
  
  <p>Thanks for any help you can provide. </p>