Page 1 of 1

Check .NET Framework 4.7.2, changes to 32 bit mode?

Posted: Mon Apr 29, 2019 2:02 pm
by JohnPaulSt
Using InstallAware Studio Admin X9, I have a project that requires the Microsoft .NET Framework 4.7.2. It appears that the script Check_for_Microsoft_.NET_Framework_4.7.2_(x86_and_x64) may set the processor architecture to 32 bit, even when environment is actually 64-bit Windows 10?

Scenario:

-At the top of my project's main MSIcode script, I set mode as 64 Bit Mode:

Set x64 - Native 64 bit Windows, AMD64, EM64T, and ARM64 Achitectures - installation mode

-Later in project's script, call is made to the script Check_for_Microsoft_.NET_Framework_4.7.2_(x86_and_x64).

-It appears to me that when control returns from the script Check_for_Microsoft_.NET_Framework_4.7.2_(x86_and_x64), when installation performed on a Windows 10 machine (64 bit operating system), that the project's main script then interprets the environment as 32 bit.

For example, Get Folder Location System->Program Files Directory into PROGRAMFILES returns 32-bit program files location 'C:\Program Files (x86)', rather than Windows 10 64-bit program files directory 'C:\Program Files\'.

-Perhaps the incorrect variable is being referenced, line 19 below, test for ISWINDOWS64BIT? That being true on Windows 10 (64 bit operating system), then line 20 does a Set Win32...?

InstallAware-Studio-Script Check for Microsoft .NET 4.7.2 - Win32 - 2019Apr29.jpg
InstallAware-Studio-Script Check for Microsoft .NET 4.7.2 - Win32 - 2019Apr29.jpg (174.02 KiB) Viewed 4645 times

Re: Check .NET Framework 4.7.2, changes to 32 bit mode?

Posted: Thu Jan 30, 2020 2:58 pm
by FrancescoT
It's correct to check for 64 bit at very beginning of the man script. You may also switch to 64 bit just after, in case you need to execute a command which depends on x64 mode settings.

However, it's a good practice to switch to x64 mode or to include an additional x64 mode switch also, within the "[Define Setup Globals] Region". This because "Application Runtime scripts" (if present) may revert back to x32 bit mode.

-Perhaps the incorrect variable is being referenced, line 19 below, test for ISWINDOWS64BIT? That being true on Windows 10 (64 bit operating system), then line 20 does a Set Win32...?

No, this is not an error. Here the script has to detect the location of the "C:\Windows\SysWOW64". This system folder only exists on x64 systems and this can be only accessed when the process runs in 32 bit mode.