Because of the complexity and depth that installation stories can have it seems like it is very easy to get a little confused with terminology and how it maps to actual real world things. Additionally it seems like the varied nature of installation and setup stories has produced some excellent environment for confusion.
Today I’m going to talk a bit about the different between installers and bootstrappers and what it means specifically to our VSTO installation story. In previous posts I've mentioned basically 2 major methods for handling installation for VSTO objects. For the sake of clarity I will talk of these as the MSI method and the ClickOnce method.
In the ClickOnce method I clearly notate the 2 pieces: the published customization and the bootstrapper (the Setup.exe File). Specifically of interest is the Bootstrapper. The Bootstrapper handles pre-requisites for the customization. Basically the bootstrapper created in publishing a ClickOnce application is almost a stand-alone component. Without the customization it would in fact install all of the prerequisites, only failing when finally getting to the last step where it tries to install the customization itself.
In the past I've also talk a briefly about using Visual Studio's Windows Installer project to install customizations. The Windows Installer project will actually product a setup.exe file and an MSI file. The MSI file is essentially the same functional part as the published ClickOnce Customization. The setup.exe file is also a bootstrapper and is created in the same manner and essentially works the same way as with a ClickOnce Setup bootstrapper. For a VSTO developer this should be relatively good news since it means any work you do creating prerequisites for one is work that is directly applicable to the other.
So for future clarity: when I talk about bootstrappers I mean the Setup.exe file and when I talk about installers I will generally be talking about either VSTOInstaller.exe (executed against ClickOnce Manifests) or the MSI/Windows Installer file. You can think of the Bootstrapper as the piece that starts the process and the installer as putting the part into place.
In most cases my interests lie in the Installer world since that is where the "magic" of VSTO is. The bootstrapper technology is definitely good, but it's not as interesting of a topic for me.
On a side note, I suspect my topics for the next couple of weeks will be fairly short. I may break one of my bigger topics into multiple entries. I'm about to start on a project that isn't as directly related to VSTO or ClickOnce and as such the amount of mental bandwidth I will have to delve into the depths will be much lower.
For more "exciting" and strange ramblings, tune in next week.
Thank you for reading,