I’ve been working on a setup bootstrapper for some time and now it reached testing phase. The tester constantly made the bootstrapper generate a too general error message by letting it run, uninstalling a third-party package and then running it again. For me, that means I’ve not been able to prepare the code to handle this specific scenario and the bootstrapper final line of defense was activated. Arguably, the setup worked fine, but the client always pushes for friendly and very descriptive error messages.

I’ve tried to see how could I have prepare the bootstrapper from the beginning to handle such a scenario; I’m having really big difficulties walking in the shoes of an user that installs an application, runs it and then he uninstalls .NET Framework or SQL Server Express. I guess he has too much time at his disposal or too much power on his computer.