
bob1.5524944387838816E12 asked a question.
Installshield 2009 Installscript Support for 64 bit
I would like to get some clarification about the 64 bit support for installscript installations. I was told by support, and have read here that although the Installscript engine is 32 bit, it will write files and register them properly on 64 bit machines. When I try and install a 64 bit driver on a 64 bit box, I am unable to get my drivers to install to the system32 directory. They always go into the syswow64 directory causing the self-registration to fail. It is a 64 bit DLL, and needs to be placed in the system32 directory. Even the self-registration code recognizes this as it keeps looking for the file in the system32 directory.
I have tried Winsysdir, Winsysdir64, windir/system32. I have also tried making an installation that only installs 64 bit components, but still the driver file goes into the syswow64 directory. How do I get IS2009pro to put the files in their proper location. I have seen reference to this enable/disable WOW64FSREDIRECTION, but this only seems valid if you are copying the files manually from code. Do I have to copy the files manually to get IS to write the files to the proper location? Any suggestions on how to make this work properly in the 64 bit environment would be apprecated.
Robert McMahan
Futuresoft, Inc.
I have also tried calling regsvr32 via Installscript, LaunchAppandwait, and it calls the 32 bit version of regsvr32 instead of the 64 bit version, again failing the registration.
I'm wasting alot of time trying to get this to work, and as far as I can see, the 64 bit support that is advertised on the website does not exist. Here is the information from the Acresso website.
InstallScript 64-Bit Support
InstallScript installations can also install and register 64-bit files. less
In addition to Windows Installer (MSI) installations, InstallScript installations can also install and register 64-bit files. Interaction with 64-bit system folders and the 64-bit registry are fully supported as well. This functionality is supported for both Intel and AMD 64-bit platforms.
Detect whether the setup is running on a 64-bit system, and whether it is Intel or AMD.
Install files to 64-bit Program Files and Common Files locations.
Limited support for installing files to 64-bit Windows System Folder.
All general registry functions now support accessing 64-bit specific registry locations.
Mark components to installed or not installed on 64-bit Intel or 64-bit AMD platforms.
Install and register 64-bit self-registering files.
Where is the 64 bit support? :mad:
I don't know that the InstallScript engine fully supports launching 64-bit self-registering DLLs. Perhaps someone else may have more familiarity with that.
As always, you will want to ensure that the 64-bit to 32-bit redirection functionality is disabled for this.
- Disable (WOW64FSREDIRECTION)
- Use LaunchAppAndWait to start WINSYSDIR64 ^ "REGSVR32.EXE"
- Enable (WOW64FSREDIRECTION)
Hopefully this will help you out.
thanks a lot that helped me out.
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;
Thanks for your hint
Jörg
Hi srweisner,
thanks a lot that helped me out.
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;
Thanks for your hint
Jörg "
Could you let me know where you put the custom actions calling these two functions in execution sequence? Thanks
I have put the custom actions for the registration after 'InstallExecute' and the unregister after 'Remove RegistryValues'
Cheers
Jörg