Windows Installer is a free tool, a component available on Windows for both users (for installing packages) and developers (for creating installation packages). You can use your capabilities using the Setup project in Visual Studio.
Wikipedia Information
MSDN Information
MSDN Information (link)
InstallSite Information
Such packages have several software deployment points, some of which include: having a central container for many files that depend on each other, hiding this unnecessary truth from ordinary users, compression to make the final deployment package smaller, built-in actions for write configuration items to the system (both for system and for your own), user actions to perform any processes necessary before running the software, almost completely offline rollbacks, deletes, etc., and the list goes on.
There are other environments for creating these packages (unlike VS), some use MSI technology, some use other, proprietary technologies.
source share