Robust Application Packaging
Every component should have a unique GUID. Problems arise when this rule is taken literally. which happens more often than you may think. As an example if we have a file called “jpgview.dll” installed by two components using two different GUIDs. the windows installer is unaware that two applications are sharing the same file. This is not a problem until you perform an upgrade or uninstall one of the applications. At which point the file “jpgview.dll” will also be uninstalled! Rendering the remaining application non-functional. The way to prevent this is to ensure that all of the components are aligned. This means that components containing like files must have the same contents and the same GUIDs. This will prevent the example scenario from occurring.
How do we achieve it?
The management of components can be achieved as simply as maintaining a list or simple database. However the most effective solution is to use a proprietary application such as Wise Conflict Manager or Installshield's Conflict Solver. These products help you to keep track of your components and identify potential problems. allowing you to correctly align the components within your organisation. It should be noted that these tools are semi-automated but will require the packager to make informed decisions on how to resolve conflicts and align components.