Jump to content

This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.

Patching: component with no key file & subfolders

1 reply to this topic


  • Members
  • 28 posts

Posted 24 March 2004 - 15:43


Our product has several components which are created with 'dynamic file linking' in Installshield Developer 7.04. As far as I understand it, this just means that the list of files in the component is decided at build-time, and that there is no key file.

None of the files in these components are versioned. One component in particular consists of many files with a quite deep folder hierarchy; all the files are in the same place, just that they are in different subfolders.

It is quite possible that the files in this component will change between different versions of our product; the subfolder structure might also change.

Like most users, our customers find having to uninstall & reinstall a pain for upgrades. What are the implications of patching our product, given the presence of these dynamically linked components?



Stefan Krueger

Stefan Krueger


  • Administrators
  • 13,269 posts

Posted 24 March 2004 - 18:29

All files in a component must go to the same folder. So for every subdirectory an additional component is required. That's a requirement of Windows Installer.
For dynamic links InstallShield creates those sub components automatically, but doesn't keep the file table keys in sync, so patches and minor updates will not work properly.
If your sub folders change name, or are removed this will also impact the component structure, which prevents successful patching and minor updates.

So your best bet might be using Major Upgrades that automatically uninstall the old version while installing the new version. You have to change the Product Code for the new version and fill the Upgrade table in Direct Editor (in later versions of Developer there's an Upgrade view for this purpose)