In particular, I'm having trouble figuring out why this would be written to the log file:
Code: Select all
MSI (s) (38:BC) [16:46:24:542]: WIN64DUALFOLDERS: 'C:\Program Files (x86)\' will substitute 17 characters in 'C:\Program Files\Application Program\' folder path. (mask argument = 0, the folder pair's iSwapAttrib member = 0).
MSI (s) (38:BC) [16:46:24:558]: PROPERTY CHANGE: Modifying TARGETDIR property. Its current value is 'C:\Program Files\Application Program'. Its new value: 'C:\Program Files (x86)\Application Program\'.
Some background to the issue:
The user installed version A (64-bit) of the program, and the files were written to C:\Program Files\. The user updated to version B (64-bit) of the program and the files were incorrectly written to C:\Program Files (x86)\ because the wrong TARGETDIR (32-bit program files) was specified during the update. The user then updated to version C (64-bit) of the program using the correct TARGETDIR (64-bit program files), and now whenever the user tries to install the 64-bit version of the application, it always shows the above in the log file and installs the program to C:\Program Files (x86)\ instead.
Another part of the log I'd like to know more about is all the commands starting with:
Code: Select all
Executing op: ComponentRegister
I'm trying to figure out where it determines what to use for some of the parameters passed, in particular:
Code: Select all
BinaryType=0
From what I can tell, BinaryType=0 means the application is 32-bit and BinaryType=1 means the application is 64-bit, but where is that determined? From some system setting?
Thanks in advance for any help.