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

32+64 bit Components Installation for "Windows7/64 Bit"

I want to install 32 and 64 Bit components using Installshield 2009/2011 Installscript/Installshield Engine.

MyComponents32 --> WINSYSDIR
Test_1.dll (32 bit)
Test_2.dll (32 bit)
Test_3.dll (32 bit)



MyComponents64 --> WINSYSDIR64
Test_1.dll (64 bit)
Test_2.dll (64 bit)
Test_3.dll (64 bit)


MyComponents32 should be copied to SysWOW64 and registered.

MyComponents64 should be copied to System32 and registered.


I have tried many combinations and settings but none of them worked as supposed.

Without using WOW64FSREDIRECTION, Test_*.dll (64 bit) get copied to both SysWOW64 and System32!

I have tried to disable/enable WOW64FSREDIRECTION using the events "Installing" and "Installed".

MyComponents32 enable WOW64FSREDIRECTION
MyComponents64 disable WOW64FSREDIRECTION
--> Test_*.dll (32 bit) get copied but then i get the Error message: Test_1.dll (64 bit) could not be found!

I've expected that by setting the Target to WINSYSDIR or WINSYSDIR64 all the background work should have been done and managed by Installshield, but obviously i am wrong!

Any suggestion how to manage this?
Labels (1)
0 Kudos
(1) Reply
K0NFUZIUS
Level 5

Hi David,
I had a similar problem.

I tried to register a 64 Bit dll in a 32Bit installation in Basic Msi. The registration didn't worked so I decided to call regsvr32 from an Custom Action and that worked perfectly.

#define REGSVR64			"\""+WINSYSDIR64^"REGSVR32.EXE"+"\""
#define REGSVR64RegParam "/s \""+INSTALLDIR^"x64"^"Lib.dll"+"\""
#define REGSVR64UnRegParam "/u /s" + " \"" + INSTALLDIR^"x64"^"Lib.dll"+"\""
function register64BitPropertyHandler(hInstall)
begin
Disable (WOW64FSREDIRECTION);
LaunchAppAndWait( REGSVR64, REGSVR64RegParam, NOWAIT );
Enable (WOW64FSREDIRECTION);
end;
function unregister64BitPropertyHandler(hInstall)
begin
Disable (WOW64FSREDIRECTION);
LaunchAppAndWait( REGSVR64, REGSVR64UnRegParam, NOWAIT );
Enable (WOW64FSREDIRECTION);
end;


Hope that will help you out
Cheers

Jörg

see also my original post:
http://community.flexerasoftware.com/showthread.php?t=185919
0 Kudos