So, one of my myriad projects I have going on is a run-once and forget about it application which modifies the resolution order for Outlook Address books (fun stuff, I know). Forget the fact that this is evil MAPI and C++ stuff (made even eviler via Vista), and also deals with the arcane Outlook COM objects in C#, I got it working.
After a number of hours of smacking my head against the wall, I got it working.
Well, as a final bit, the client requested that it install and then run and that's all it needs to do.
My initial thought was, let's just drop it into the START folder under the program list, and have it run every time the system reboots. The client didn't want this, as all he wanted was a run once and never have to bother with again type of thing.
Well, Aaron Stebner has a solution which actives that "Run this application" checkbox in the MSI system, which can be found here.
Which was almost what I wanted. The problem there is that I want to FORCE the application to run EVERY TIME it is installed.
Which led me to this CodeProject article: Launching your application after install using Visual Studio 2005. Outside of the circular reference to my first link, and the fact that the title is slightly misleading, this does exactly what I want.
Which is launch the application AFTER the install, but prior to the INSTALLATION wizard finishing.
Which makes me happy, the client happy, and the world just that much of a better place for everyone involved.
Good times.