cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
websurf
Level 3

Question about Minor upgrade using Dynamic File Linking

Dear forum member,

Thanks in advance to those who may know the answer to my question.
I have a question about minor upgrade using Dynamic file Linking.
I have an InstallScript MSI project using Dynamic file Linking to add my files/folders,
with one folder having multiple sub-folders and sub-sub-folders.
The file structure will look like this after installation:

Program Files\main.exe
Program Files\folderA\folder1\folder1-1
Program Files\folderA\folder2\folder2-1

Dynamic file Linking only points to the folderA layer and not deeper.
When making changes to the files, I discovered that if I either only
1. ADD a sub-folder under folder A
E.G.
Program Files\main.exe
Program Files\folderA\folder1\folder1-1
Program Files\folderA\folder2\folder2-1
Program Files\folderA\folder3\folder3-1 --> added in new setup project

or
2. REMOVE a sub-folder under folder A
E.G.
Program Files\main.exe
Program Files\folderA\folder1\folder1-1
Program Files\folderA\folder2\folder2-1 --> removed in new setup project


then build a new version of setup.exe to minor upgrade the older installation, it will upgrade fine.
Please take note that I only make ONE kind of file change(eithe add OR remove, not both) at a time, and the minor upgrade will be ok.

BUT if I make BOTH kinds of file changes(add AND remove) at a time like the following:
E.G.
Program Files\main.exe
Program Files\folderA\folder1\folder1-1
Program Files\folderA\folder2\folder2-1 --> remove in new setup project
Program Files\folderA\folder3\folder3-1 --> added in new setup project

then build a new version of setup.exe to minor upgrade the older installation, it will not minor upgrade and will skip the copy files process and jump to the finish screen.
Also, after the minor upgrade, Windows Installer seems to be messed up and can't uninstall my program anymore, when I try to uninstall it using Control Panel's Add/Remove Programs.

My question is,
1. Why does Installshield remember the old setup.exe's file structure, even when Dynamic File Linking was only assigned to the PARENT folder of the folder being added/removed ?
2. Why does BOTH adding/removing folders when building a new setup.exe result in minor upgrade failure ? Is this a limitation of the Minor upgrade or Dynamic File Linking ?


Thank you for your help.
Labels (1)
0 Kudos
5 Replies
GetExp
Level 6

How are the folders\sub folders are grouped into the components? Is it in a same component or a different component? Also, you can use the Direct Editor view of the Dynamic File linking for seeing whether there are any older references of the directories ...
0 Kudos
websurf
Level 3

Hi GetExp,

Below are the details to your question.

1.The folders\sub folders are grouped into a single component
2.I checked on the ISDynamicFile table using Direct Editor view, and made sure there was no older references of the directories.
0 Kudos
KathyMorey
Level 10

You might want to search these forums and the IS HelpNet for information about using dynamic linking. In general, though, the way IS handles dynamic linking (in MSIs) is to create a component for each folder or subfolder, since the Windows Installer can install a component's contents only to one folder. IS then generates a GUID for each of those components.

I don't know the reason, exactly, but IS doesn't seem to be able to synch GUIDs for components for minor upgrades when the dynamic link is more than one folder "deep".

From what I have seen in these forums (and in my experience) you will have issues with minor updates if you have dynamic links that include subfolders. You would be better off either creating a component for each subfolder, or using major upgrades (uninstall, then reinstall) if you use dynamic links with subfolders.
0 Kudos
GetExp
Level 6

I had the same opinion as Kathy had.,.. Try creating individual components for each file/folder..
0 Kudos
websurf
Level 3

Thanks to Kathy for your detailed reply. ^^
0 Kudos