1
votes

Of late I have started to observe a weird issue while installing a 32-bit application (created using installshield) on a 64-bit Windows 7 OS.

The following is found in the log:

MSI (s) (68:64) [00:30:39:917]: Executing op: ActionStart(Name=ProcessComponents,Description=Updating component registration,) MSI (s) (68:64) [00:30:39:917]: Executing op: ProgressTotal(Total=1,Type=1,ByteEquivalent=24000) MSI (s) (68:64) [00:30:39:917]: Executing op: ComponentRegister(ComponentId={0770248C-8066-4600-A88D-B83BE48A1B57},KeyPath=C:\Program Files (x86)\RI\Port\PortFTPA.exe,State=3,,Disk=1,SharedDllRefCount=2,BinaryType=0) MSI (s) (68:64) [00:30:39:917]: WIN64DUALFOLDERS: Substitution in 'C:\Program Files (x86)\RI\Port\PortFTPA.exe' folder had been blocked by the 1 mask argument (the folder pair's iSwapAttrib member = 0).

An older version of the EXE 'PortFTPA.exe' is already present on the OS at C:\Program Files (x86)\RI\Port. I created another custom MSI using installshield to overwrite the EXE with a newer version of the same.

In the 'Summary Information Stream', I configured it to be a 32-bit installer and also configured the component containing the EXE to install to the [ProgramFilesFolder] location.

Yet, the file fails to be replaced.

Please help.

1
I don't know how all your components are configured, 64-bit or 32-bit, but that's what makes the difference, keeping in mind a 64-bit MSI can have 32 and 64-bit components but not vice versa. The rule that is being applied is that 32-bit components will always go in the 32-bit program files folder and 64-bit components always in the 64-bit program files folder, redirected if necessary. That should explain what you're seeing, I hope.PhilDW

1 Answers

0
votes

There are two ways. 1. If your already installed file in C:\Program Files (x86)\RI\Port\.. is a Windows Installer package then you have to uninstall it and install the new one or you can do a update, but keep in mind that you have to increase the Version number of PortFTPA.exe. 2. The installed program under C:\Program Files (x86)\RI\Port\.. is legacy manufactor setup. In this case you have to repackage the whole application und try to uninstall the existing installations by the manufactors uninstall routine. So this isn't a easy question, we need more informations.