How do I package all my VB.NET app's components to deploy on another machine?

I have completed the development of a VB.NET application that has several user controls, class libraries, DLLs and one main application -- exe, which references the other components (DLLs). How do I package the separate components together and deploy on another Windows 2000 machine?
You'll need to develop an installation program. While there's a basic setup project type in Visual Studio .NET, I'd highly recommend using InstallSheild as it has many more options and is much easier to use.

This was first published in July 2003