Hey everyone,
I am hoping that someone can help me arrive at a solution to this problem I'm having. I am trying to build an installer which functions for both 32-bit and 64-bit operating systems. My application has a number of required Microsoft components which the installer checks for and installs as needed.
I accomplished this by creating a variable named WIN64BIT that tests to see if the OS is 64-bit or not. It then includes the correct scripts based on that test:
if Variable WIN64BIT Equals TRUE
Include Script: checknet20sp2_x64
Include Script: checkmsxml60_x64
Include Script: checknet30_x64
Include Script: checknet30sp2_x64
Include Script: checknet35sp1_x64
Include Script: checkvc91_x64
else
Include Script: checkmdac281
Include Script: checkmsi31
Include Script: checknet2sp2
Include Script: checkmsxml60
Include Script: checknet30
Include Script: checknet3sp2
Include Script: checknet351
end
This works extremely well except for the included scripts to test for Microsoft Visual C++ Runtime 9.0 SP1. These scripts in both the x64 and x86 versions have labels in them which seem to be performing some loops. Unfortunately, you can't have labels inside If Else End statements and InstallAware doesn't seem to have any other looping commands.
The end result is I can't use the method I've been using for all other required components. If I do this, on x64, the installer attempts to install both versions of the components.
I have tried everything I can think of to address this problem. I wrote some code that checked for Uninstall keys based on the GUID of each version of the redistributable. This doesn't work because the components provided by InstallAware don't seem to use the standard C++ 2008 redistributable GUIDs. I'm going to try testing for a specific file next but have a feeling we're going to run into similar problems.
My question is this: Is there a way to easily get this working? I'm surprised that the included script for C++ 2008 would be written in such a way that prevents you from being able to do 32-bit and 64-bit in the same package when this is something that InstallAware pushes so hard and has executed so painlessly with everything else.
InstallAware has proven to be fantastic. I have an extremely complex setup done for the next version of our application. Love the program, just need to get past this one sticking point.
Any advice would be greatly appreciated. I can write the code, I just need some direction.
Thanks!
-Jeff
Microsoft Visual C++ Runtime 9.0 SP1
-
iainmac1000
- Posts: 15
- Joined: Sat Jul 09, 2011 2:43 am
Re: Microsoft Visual C++ Runtime 9.0 SP1
Hello Jeff,
Did you ever manage to resolve this issue?
I have the exact same requirement ie 32 and 64bit VC++ redistributable in the same installer.
Regards,
Iain.....
Did you ever manage to resolve this issue?
I have the exact same requirement ie 32 and 64bit VC++ redistributable in the same installer.
Regards,
Iain.....
Re: Microsoft Visual C++ Runtime 9.0 SP1
Hi,
You can have the if 64 bit check call a go to command to a 32 bit label in the master script, or a 64 bit label in the master script accordingly, instead of causing if...else...end nesting.
You can have the if 64 bit check call a go to command to a 32 bit label in the master script, or a 64 bit label in the master script accordingly, instead of causing if...else...end nesting.
Aviv Giladi
InstallAware Software
White Papers (HowTos) - http://www.installaware.com/publication ... papers.htm
Product Guides - http://www.installaware.com/publication ... guides.htm
InstallAware Help -F1 anywhere in the InstallAware IDE
InstallAware Software
White Papers (HowTos) - http://www.installaware.com/publication ... papers.htm
Product Guides - http://www.installaware.com/publication ... guides.htm
InstallAware Help -F1 anywhere in the InstallAware IDE

