My boss has requested I build a Win Installer MSI using WIX. He has given me 2 days based on the fact that the PA in the group says it is easy to use WIX (He made an installer in about 2 months). Now for the fun part, the application deploys 4000 files to 14,000 locations, has custom actions, and installs 25 services. Files go to the C drive as well as the D drive. I have used WIX for about 8 hours and do not really know the design of this application... but that is another problem... I am new to the group.
Do you understand the Windows Installer (aka: MSI)? If not, then the bulk of your time will be learning MSI. After that, heat.exe can help get your authoring generated pretty quickly. The services will take some time and the custom actions could be simple or complex depending on their complexity.
I'd want at least two weeks dev time to do it... but I know the Windows Installer (and WiX) pretty well. ;) If the custom actions are at all complex I'd want 4 - 8 weeks.
Your development organization clearly doesn't understand the complexity or best practices of writing installers. I had 7 years of setup under my belt before I started using MSI and it took me 6 months to really get comfortable with out MSI worked and a full year to fully "get it". If it was me I'd first attack this whole concept of you deploying files to both the C: and D: drive and why you have all these custom actions. This is screaming antipattern. I'd want to verify the need for each custom action and understand the reason behind this whole C: and D: thing.
Personally, my gut tells me that for what you are doing you don't really want an MSI installer; you just want a .BAT file or similar.
So basically, you've been sent on a suicide mission and I wish you luck.
I completely agree with both Chris and Rob here, getting upto speed on MSI will likely take at least 6 months if you're new to setup. On the plus side, you're new to setup and won't have the same preconceptions and can start using best-practices from day one ;)
Windows Installer (and the Windows Installer API) is very powerful tool. Embarking on WiX without learning the MSI fundamentals is as Chris said, a suicide mission.
If you still insist... here's a list of resources I recently assembled for a new setup developer that provide a baseline understanding for someone completely new to windows development or setup
- Read the Tao of the Windows Installer (parts 1-6)
- Read Understanding "UAC in MSI" (parts 1-27)
- Read "The Definitive Guide to Windows Installer" (if you're not dealing with .NET or IIS you can skip those chapters)
- Be prepared to constantly reference the documentation (MSI.CHM and WiX.CHM)
- Add Chris and Rob to your blogroll (and others... I don't have a complete list handy), join the wix-users mailing list and test, test, test before shipping.
Timewise, I'd agree with Rob. 2-4 weeks.. if the CA's are complex and required, then much longer (although most of that time would be pushing back with development and removing the need for them in the first place ideally)