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

FixPack installer (.msp) does not update unversioned .js files if they have been manually modified

Hi InstallShield Support,

Currently, we are using InstallShield 2018 to build our KFS installer with the InstallScript MSI project type.
Our customer reported that they run a .msp installer of KFS 4.3.0.2 to apply on top of the base version (KFS 4.3.0.0), the unversioned .js files are not overwritten if they have been manually modified.
Here are steps our Techical Support tried to replicate the issue:

Duplication Steps:
1. Install KFS 4.3
2. Change the system date from 30 Nov 2020 to a date during the summer of 2020 such as 15 Jun 2020
3. Stop the Kofax Front Office Server service and the World Wide Web Publishing service
4. Navigate to C:\Program Files (x86)\Kofax\Front Office Server 4.3\bin\ThinClient\app\common
5. Open imageDisplay.js in a text editor such as Notepad
6. Make some update to the file
7. Save the change to imageDisplay.js
8. Note the Last Modified Date of the imageDisplay.js file is 15 June 20208
9. Change the system date back to the present date
10. Install Fix Pack 2 (4.3.0.2) for KFS 4.3
11. Check the Last Modified Date of the imageDisplay.js file and note that it was not updated to 12 Oct 2020.

Here is the documentation from InstallShield that we use for KFS installer:
---------- START InstallShield Help ---------------------------------------
Overwriting Files and Components on the Target System
InstallShield 2018
Project • This information applies to the following project types:
• Basic MSI
• InstallScript MSI

At run time, Windows Installer considers the following questions when determining whether files should be overwritten on the target system:
• Should the component be installed?
• If the component should be installed, do its files need to be installed or updated?

The following sections explain how Windows Installer evaluates these questions.
Determining Whether a Component Needs to Be Installed

During costing, Windows Installer checks the key path of a component to determine if the component should be installed. If the component has a directory or ODBC key path, Windows Installer installs the component. In addition, if a registry key path is used for the component and both of the following conditions are true, Windows Installer installs the component:
• No is selected for the Never Overwrite setting of the component.
• The key path does not exist on the target system.

If one or both of those conditions are false for a component that has a registry key path, Windows Installer does not install the component at run time.
If a component has a key file instead of a key path, Windows Installer checks the target system for the presence of that file. Windows Installer installs the component in all of the following scenarios:
• The file is not present on the target system.
• The file is present on the target system, and the key file of the component has a higher or equal version number compared to the version number of the file on the target system.
• The file is present on the target system, and the key file of the component and the file on the target system are unversioned.

If the key file of the component has a lower version number than the file on the target system, Windows Installer does not install the component at run time. In addition, Windows Installer does not install the component at run time if the key file of the component is unversioned but the file on the target system is versioned. Thus, Windows Installer does not install a component if its key file could be downgraded at run time.
---------- END InstallShield Help ---------------------------------------

Our KFS installer is using this option:
• No is selected for the Never Overwrite setting of the component.

Basically, based on the InstallShield Help, the unversioned file should be overwritten. Is that correct? If not, could you please let us know why it is not the case?
For further implementation, what should we update for our KFS installer to address the case?

If possible, when you reply to this ticket, please help to include huysy.doi@kofax.com.

Thanks,

Labels (1)
0 Kudos
(1) Reply
shunt
Revenera Moderator Revenera Moderator
Revenera Moderator

I think the issue here will be to do with the modified/create date,
According to microsoft documentation:

"Nonversioned Files are User Data—If the Modified date is later than the Create date for the file on the computer, do not install the file because user customizations would be deleted. "

https://docs.microsoft.com/en-us/windows/win32/msi/file-versioning-rules

In your project - right click the file from components view and select "Properties" - then tick the "Always Overwrite" box. This should circumvent the microsoft rule.

0 Kudos