Software developers rarely give much thought to the setup and installation experience of end users. First impressions usually stick and a mediocre setup experience can seriously impact perception of software quality.
I've created several setup projects in Visual Studio but always felt frustrated by efforts to customize the installer, often resorting to Orca to hack the MSI database. The resulting installers are difficult to maintain and fit poorly in the overall build process.
However, there is an open source solution called Windows Installer XML (WiX) that offers a powerful DSL and compiler for customizing installers. WiX also installs several MSBuild targets for build process integration.
WiX simplifies many installer tasks including database creation, progress updates, UI localization, and launch after install. UI Wizards are fantastic and offer four different flavors depending on desired sophistication. The Mondo flavor includes welcome page, license agreement, setup type (typical, custom, complete), feature customization, browsing for target directory, disk costing and maintenance mode dialogs.
Unfortunately, the power and flexibility of WiX comes with a steep learning curve so it may not be the best solution for all applications. However, it's worth pointing out that WiX was used to build the installer for Microsoft Office 2007 and was originally developed by Microsoft.