Showing results for 
Show  only  | Search instead for 
Did you mean: 
Level 4

Replace all files in upgrade


I have a Basic MSI package and I ran a small\minor upgrade with it. Most files have no version, and they were not replaced even though the upgrade package contains a different instances of these files. So, can I order the upgrade process to replace all the files or at least all the files that are different?

Labels (1)
0 Kudos
(1) Reply
Level 10

If you haven't already, take a look at the Windows Installer doc on the file versioning rules. Basically, an non-versioned file is not replaced if it's creation date and modify date are different, because Microsoft considers that file as "customer data".

I've gotten around that by setting an override version on the file itself - in the Setup Design view, drill down through the features and components to the files, right-click on the file names, and set a version number. Because the replacement file looks like it's versioned, it will always replace a non-versioned file with the same name/location.

If you're using dynamic file linking, it gets even trickier. InstallShield generates component GUIDS for dynamically-linked files' components. If you're using them, make sure that you create a component for each folder or subfolder you're pulling files from (that is, exclude subfolders in the link), and then make sure that you enable patch optimization (through the Release Wizard). Doing so will allow InstallShield to try to match the component GUIDS for your upgrade to the original GUIDs it generated.

Finally, you might want to validate your project to see if you can spot any issues that would cause the files not to be updated, and log an upgrade to see if the log file gives you any additional info.
0 Kudos