0
votes

When i try to read the MSaccess.exe path from the registry in a 64 bit machine using a 32 bit MSI , i got the below WIN64DUALFOLDERS action running and overwriting the property to 32 bit access path as given below

MSI (c) (90:98) [13:02:25:495]: WIN64DUALFOLDERS: 'C:\Program Files (x86)\' will substitute 17 characters in 'C:\Program Files\Microsoft Office\Root\Office16\' folder path. (mask argument = 0, the folder pair's iSwapAttrib member = 0).
 MSI (c) (90:98) [13:02:25:495]: PROPERTY CHANGE: Adding MSACCESSREGISTRYPATH property. Its value is 'C:\Program Files (x86)\Microsoft Office\Root\Office16\'.

I want to read the 'C:\Program Files' path but it get overwritten to 'C:\Program Files (x86)\' path by WIN64DUALFOLDERS action.

Is there any way to get this value without overwriting using a 32 bit msi

1

1 Answers

0
votes

use PROGRAMFILES64 to get the C:\ProgramFiles path

"The PROGRAMFILES64 system variable contains the fully qualified name of the folder defined by Windows to store 64-bit applications on a 64-bit system. (Note that 32-bit applications are stored under the PROGRAMFILES folder.) In English Windows, that folder is named Program Files, and it is located off the root of the drive on which Windows is installed. (In other language versions of Windows, the folder name is localized appropriately by default.) The program files folders are the recommended default locations for application folders."