So I managed to break the Windows Installer Service (MSI). This means I cannot install, “safely” uninstall, reinstall, or otherwise modify any program that uses it.
Naturally because it’s built into Windows XP Microsoft didnt bother to create a way to reinstall it (why would they need to? It’s not like ANY of Microsoft’s code would EVER break…), so I’m most likely going to end up doing some facy diffing of the windows directory and copying of files, most likely followed by a complete reinstall of windows :rolleyes:…
It just amazes me that anyone would use this thing. The whole fact of having to install something and have it constantly running just to install something else is absolutly terrible. I use Nullsoft’s Install System (NSIS), which is free, tiny (hardly adds anything to your package unlike MSI which adds almost half a meg at least if I recall correctly), and requires nothing but a copy of Windows (hell, it will even work in wine!).
So this is my call to developers - Do not use MSI.
Use NSIS, or Inno if you can’t figure out NSIS’ scripting language (which admitidly is a little tricky at first but it’s actually alot of fun once you figure out the basics). You’ll make everyone very happy. And if it doesnt make everyone very happy, at least you’ll make me very happy. And in the end, isn’t that all that really matters?
4 Comments
MSI has it’s uses, but I think people use it mainly because it’s built into VS and is easy to set up.
But, I agree, it’s a bit of a waste.
MSI’s are more targeted to enterprise environments instead of NSIS. Try to install winamp in your enterprise to several organisational units. I think you will have difficulties there.
Msi just rule because it is ONE system. NSIS would be interesting if it would be crossplatform. One thing that rules with NSIS is it’s environment. There isn’t a neat IDE for WiX for example.
I built a nice general purpose installer script using NSIS. I like NSIS because it is fast and they included a ton of sample scripts. You can check out my script here.
I used the MUI (Modern UI) stuff of NSIS, which I like because it allows you to have a nice splash screen.
You do realize, I hope, that NSIS will use some of the MSI APIs under the hood? Also, take a look at WiX. This is a good approach to developing large, complicated installers that requires many people to work on. It is actually possible to re-install MSI as well. And, once you know the tricks of MSI, it’s really not as bad as it seems at first.