Visual Studio Installer states that it is a best practice to install each file as an installer component. The heat utility provided with Wix also seems to follow the practice of putting every file in its own component.
InstallShield's component wizard uses InstallShield's setup best practice of placing portable executable files in their own component but groups all other files (e.g. unversioned files) by the common destination folder.
The advantage of practice one (each file in its own component) is that each file is set up as a key file which is important if you want these files to trigger repairs. It also allows automation of creating the components (e.g. heat) easier since you are creating a component for each file.
The disadvantages of practice one include the overhead of managing so many components and the bloating of the registry after the application is installed.
An advantage of practice 2 could be seen in an install that installs hundreds of graphics files to one directory. If you do not care about repair functionality, is there any reason to create hundreds of components for this install?
These 2 different practices are conflicting and I want to know which one that people actually use and why.
MSI package groups components into features. These are the user-recognizable chunks of an application, including options that users can choose to install, such as Word in the Office suite. Subfeatures, such as a spell checker, can be nested within a larger feature for more granular control of the installation process.
MSI – Medium Scale Integration It contains less than 500 components or have more than 10 but less than 100 gates.
MSIs are institutions of higher education that serve minority populations. They are unique both in their missions and in their day-to-day operations.
I always use the Microsoft approach (something similar to what InstallShield does): http://msdn.microsoft.com/en-us/library/aa368269(VS.85).aspx
I think it's the best because: - important files (EXE, DLL etc.) have their own component, so they can be repaired easily - resource files are grouped together - it allows an optimum components count (not too many to get a long install, but enough to allow an easy repair)
I also noticed that most commercial setup authoring tools use this approach.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With