This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: Installshield 2009 Installscript Support for 64 bit
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jan 27, 2009
05:03 PM
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 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.
(9) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jan 28, 2009
09:45 AM
I have added code to the installing and installed events to disable and enable wow64fsredirection. This allowed me to get the file into the system32 directory where it belongs, but it still will not self-register with an error that it cannot find referenced file, pointing to the "c:\windows\system32\dcagent64.dll", but the file does exist. I can call regsvr32 on the dll from a command prompt, and it will register properly.
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 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:
Not applicable
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jan 29, 2009
05:39 PM
Have you tried launching regsvr32 from C:\Windows\System32\regsvr32.exe from LaunchApplication? That should ensure that you're actually launching the proper 64-bit version of regsvr32.exe and not the 32-bit version.
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.
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.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Feb 26, 2009
04:02 PM
I'm battling with similar 64-bit issues and I've made some progress but I can't say I'm finished. I don't know for sure that this will work for you, but to resolve a similar problem, I did the following in my InstallScript:
- Disable (WOW64FSREDIRECTION)
- Use LaunchAppAndWait to start WINSYSDIR64 ^ "REGSVR32.EXE"
- Enable (WOW64FSREDIRECTION)
Hopefully this will help you out.
- Disable (WOW64FSREDIRECTION)
- Use LaunchAppAndWait to start WINSYSDIR64 ^ "REGSVR32.EXE"
- Enable (WOW64FSREDIRECTION)
Hopefully this will help you out.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Feb 26, 2009
04:43 PM
I attempted that on my installation, and it still continued to launch the incorrect version of Regsvr32. I ended up changing over to BasicMSI installations, and writing the appropriate registry entries manually instead of using the self registering code. These installations were very simple (1 file, a few dependancies, and a couple of registry entries), so it was not to big a deal to work around the issue, but I have some much more complicated ones that are not going to be so easy.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 18, 2010
11:11 AM
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.
Thanks for your hint
Jörg
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
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 01, 2010
10:55 AM
K0NFUZIUS wrote:
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
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 26, 2010
10:21 AM
Hi Ivan,
I have put the custom actions for the registration after 'InstallExecute' and the unregister after 'Remove RegistryValues'
Cheers
Jörg
I have put the custom actions for the registration after 'InstallExecute' and the unregister after 'Remove RegistryValues'
Cheers
Jörg
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Feb 04, 2011
12:51 PM
that would suffice if i were trying to register a 64bit dll. as it is, however, i'm trying to load and use the dll.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Mar 08, 2011
02:33 AM
thanks for the help, that saved me alot of time