cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
sgurgul
Level 2

Preventing execution of 32- installer on 64-bit machine

Hi,

I have an installer with have two target builds: Windows 32- and 64-bits. The targets mainly differ with JVM machine embedded.

I would like to prevent 32-bit installer to be installed on 64-bit OS (and vice versa).

I could use a conditional rule "Check System Architecture" to verify current architecture of the client machine in installer run-time but I did not find a way to check which "build target" is actually executed.
As a result I have no idea how to recognize such inconsistency (32-bit installer running on 64-bit machine) to later prevent it.

Any hints ?

Best regards,
Sebastian
Labels (1)
0 Kudos
(4) Replies
anilsharma
Level 4

sgurgul wrote:
Hi,

I have an installer with have two target builds: Windows 32- and 64-bits. The targets mainly differ with JVM machine embedded.

I would like to prevent 32-bit installer to be installed on 64-bit OS (and vice versa).

I could use a conditional rule "Check System Architecture" to verify current architecture of the client machine in installer run-time but I did not find a way to check which "build target" is actually executed.
As a result I have no idea how to recognize such inconsistency (32-bit installer running on 64-bit machine) to later prevent it.

Any hints ?

Best regards,
Sebastian


I do not think there is a property there by InstallAnywhere for this. But as a workaround, you can use your own jre packs instead of the vm packs from IA and use them as per the system architecture. 64 bit installer will never run on the 32 bit system.
0 Kudos
pv7721
Level 20

anilsharma wrote:
I do not think there is a property there by InstallAnywhere for this. But as a workaround, you can use your own jre packs instead of the vm packs from IA and use them as per the system architecture. 64 bit installer will never run on the 32 bit system.


This is obvious, but I think that what he originally wanted is the other way around: normally 32 bit installers DO run on 64 bit platforms, but I guess that if his end-users mistakenly download and run the 32 bit installer on the 64 bit platform he doesn't want that to happen.
0 Kudos
nosrednayduj
Level 7

I wrote two custom rules, Is64BitArch and Is32BitArch, which on windows reads PROCESSOR_ARCHITECTURE (and PROCESSOR_ARCHITEW6432), on linux calls getconf LONG_BIT and on solaris calls isainfo -b and parses the output. It would have been nice if (a) java and (b) IA could have provided this information more conveniently.
0 Kudos
pv7721
Level 20

nosrednayduj wrote:
I wrote two custom rules, Is64BitArch and Is32BitArch, which on windows reads PROCESSOR_ARCHITECTURE (and PROCESSOR_ARCHITEW6432), on linux calls getconf LONG_BIT and on solaris calls isainfo -b and parses the output. It would have been nice if (a) java and (b) IA could have provided this information more conveniently.


IMHO, I think this might be hard to do, maybe even impossible, and that simply because IA reports what Java reports, so for instance if you're running a 32 bit Java on a 64 bit platform you'll get incorrectly the info that the platform is 32 bit...
0 Kudos