Ih8stupidrules
Level 4

Problem with Dynamic Linked Files /MSI Basic Project

Hi,

How does one ensure that files from a dynamic link, with the 'Best practices' options checked, keep the same GUID accross versions and updates?

I believe this is the problem with our current install kit: some GUIDs are not maintained for certain files.

This results in the minor upgrade breaking, and no files are actually updated, with the next startup of the program triggering an 'install/configure on demand' type popup. That popup does not seem to deploy any new files either...

We have over 500 files in that folder: please tell me I don't have to link them all individually!!!! This would be such a step backwards...

(Why is there no 'always overwrite' option for dynamic linked files?)
Labels (1)
0 Kudos
6 Replies
Vijay__K
Level 7

Hi,
As far as I know, to update a file in a dynamic component, you need to exclude it from the dynamic component and add a new component with this file in.

Someone may have another trick. BTW, you can add large amounts of files by dragging and dropping into a component, this way the file is not dynamically linked and has the 'always overwrite' option.

Thanks,
Vijay
0 Kudos
alegerlotz
Level 7

Try setting the "Previous Package" in your Release.

This means, of course, that for each build you need the prior build's output available to point to...
0 Kudos
KathyMorey
Level 10

InstallShield should be able to retain the GUIDs across versions if:
1. you have dynamic links
2. each of those links excludes subfolders, that is, every subfolder has its own component
3. You have the Patch Optimization option turned on in the build, and point to the previous package.

Since a component can only install to a single folder, if you include subfolders, InstallShield generates multiple components (with GUIDs) with multiple files (with individual GUIDs) and it is apparently unable to retain the GUIDs for the structure when you build a new version.
0 Kudos
Ih8stupidrules
Level 4

Thanks for the infos!

Setting the 'Previous Package' seems to be helping alot, and creating some new problems... (warning & errors at build)

Would the GUID of a component change if the case of the filename changed?

I've also changed the few dynamic links that were recursing into the subfolders so that each subfolder is a distinct component.

About the 'Patch Optimization option', where do I find that? I can't find it!

Using InstallShield 2010 Premier, with a Basic MSI project, with a setup.exe bootstrapper.
0 Kudos
Ih8stupidrules
Level 4

Wow. I'm baffled.

I just figured out why I still had 4 files whose GUID's were changing: the CASE of the FILENAME must be the SAME from one version to another... !!! :eek:

Other than UCasing or LCasing every file, is there a workaround for this?

For now, I just made sure the case is the exact same for each versions, but honestly, this is a bit ridiculous...
0 Kudos
orlribeiro
Level 2

Hello,

Our company is trying to migrate some setups to MSI projects and we are being faced with these exact problems.

Because this is the official flexera community forum, i'd like to know if it is possible to get a somewhat official response about what can and can't be done in MSI projects regarding this dynamic links issue in minor upgrades?

The migration from InstallScript to MSI is starting to look like a downgrade and a dangerous liability for our company, if things like the case of a DLL or a simple subfolder in dynamic links break a minor upgrade. This isn't something that can be explained to a paying customer easily...

We have a lot of dynamic links with sub-folders, mainly for "blind" distribution of folders and distribution of localized resources. Things that will change our work methods and increase wasted time handling the setups, if they need to be changed...

Thank you for your help.
0 Kudos