I want to create External UI using C# for MSI package. I found very little document after googling for long time. Please help!

1. Take a look at MSDN here
2. If you are OK with commercial software, I suggest you to try Nvn Installer . You can use C# application as external UI for your MSI package. It provides lot other features than just installation.
3. Sharp Setup also looks useful.