cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
napalmer
Level 4

Prevent 64 bit installer on 32 bit machine

Is there a way in ISMP11.5 to set the executables to only run on a 64 bit machine? I saw that there was the Template Summary in previous versions but I can't locate this in ISMP11.5. Would I have to use a Custom Action to find out what machine type and then restrict? any hints, code segments would be great.
Labels (1)
0 Kudos
5 Replies
CChong
Level 11 Flexeran
Level 11 Flexeran

The Template Summary property only exists in MSI type projects. In ISMP, you can detect 64-bit Windows using either the "Windows 2003 on Itanium" or "Windows 2003 on AMD64" platform conditions. Those conditions are available on the platform wizard bean condition or platform product bean condition.
0 Kudos
napalmer
Level 4

I didn't think about that, but i did get it to work by using a string comparision between $E(PROCESS_IDENTIFIER) and a regular expression to determine if the processor was x86 based [I can post the reg exp if you'd like I just don't have the window open right now]
0 Kudos
pradnya
Level 3

Hi napalmer,
I have also a requirement in my ISMP project where I want executables to only run on a 64 bit machine. Could you please post the regular expression that you have created? I would appreciate a quick response as its an urgent need.
I also want to prevent 32 bit executables on 64 bit os. Could you suggest a way to achieve this?

Thanks
0 Kudos
sjjs84
Level 5

The easiest way to go about this is to add a Platform Product Bean condition to your root product bean. When you edit the Platform property of the condition, you should see a Predefined tab and a Custom tab.

I suggest creating a Custom platform using a Predefined platform as a base and edit the Architecture property. In your case, you would say x64 or IA64. All it does is check os.arch and compare the result with whatever you specified under that property.
0 Kudos
ze_netio
Level 4

To fix this problem I implemented this code

// check if 64 bits
if(!(SYSINFO.bIsWow64 > 0)) then
MessageBox("Can only install on 64-bit platform. Aborting...",SEVERE);
abort;
endif;


www.byteshift.com
0 Kudos