PDA

View Full Version : Install Type "Hybrid 32/64" giving message "msls31.dll module could not be found"



Manish Jhalani
02-19-2014, 04:20 AM
I am using setup builder to create installer for my application. Earlier installer was only intended for 32-bit Windows XP and FUNCTION:Detect Previous Version{"4D910660-BBBC-11D8-6784-02015E7D18BE"} was detecting previous version accurately. Install Type is set to 32-bit.

Now I want the same installer work for 64-bit Windows 7 also. But same installer didn't detect previous version installed. I noticed in dynamic help that I need to change Install Type to Hybrid 32-/64-bit. Changing to Hybrid 32-/64-bit worked and installer detected previous version and uninstalled it successfully.

But now I am facing an issue totally different and getting a message "msls31.dll module could not be found" as soon as I click next to start installation.

I searched for file msls31.dll and its present at location "C:\windows\system32". Path variable also has "C:\windows\system32" in path string.

Please help.

linder
02-19-2014, 04:26 AM
Hello,

You only use a Hybrid installer if you have to install both native 32-bit and native 64-bit components from the same setup. You should NEVER use it if your application is a 32-bit app. Do you have to ship 32/64-bit components from the same installer image?

To install your 32-bit application on Windows x86 (32-bit) and Windows x64 (64-bit), you have to use the "Windows 32-bit" Installer Type !!!

Friedrich

linder
02-19-2014, 04:29 AM
BTW, and see this (it tells you what causes your non-SetupBuilder related "Msls31.dll" issue):

http://www.lindersoft.com/forums/showthread.php?t=9589

Hope this helps a bit.

Friedrich

Manish Jhalani
02-19-2014, 05:08 AM
Hello,

You only use a Hybrid installer if you have to install both native 32-bit and native 64-bit components from the same setup. You should NEVER use it if your application is a 32-bit app. Do you have to ship 32/64-bit components from the same installer image?

To install your 32-bit application on Windows x86 (32-bit) and Windows x64 (64-bit), you have to use the "Windows 32-bit" Installer Type !!!

Friedrich

Thanks a lot Friedrich.

I want same installer to work on XP/Windows 7 and detect previous version with FUNCTION:Detect Previous Version{"4D910660-BBBC-11D8-6784-02015E7D18BE"}. When install Type is set to 32-bit installer detects previous version on XP but doesn't in Windows 7 64-bit machine.

What should I need to do then for Windows 7 such that FUNCTION:Detect Previous Version{"4D910660-BBBC-11D8-6784-02015E7D18BE"} detects previous version ?

Thanks.

linder
02-19-2014, 05:14 AM
Hello,

There is absolutely no difference between XP and, say, Windows 7. The "Detect Previous Version" works on all Windows versions (including Windows 8.1 x64 and Windows Server 2012 R2).

The same installer can be used on all Windows operating systems. Just set the installer type for your 32-bit application to "Windows 32-bit" and you are done. And of course, the "Detect Previous Version" will detect your 32-bit installation on Windows 7 x64.

Friedrich

Unregistered
02-20-2014, 12:14 AM
Hello,

There is absolutely no difference between XP and, say, Windows 7. The "Detect Previous Version" works on all Windows versions (including Windows 8.1 x64 and Windows Server 2012 R2).

The same installer can be used on all Windows operating systems. Just set the installer type for your 32-bit application to "Windows 32-bit" and you are done. And of course, the "Detect Previous Version" will detect your 32-bit installation on Windows 7 x64.

Friedrich

With installer type set to 32-bit, below statement

Set Variable %_SB_INSTALLDIR% to FUNCTION:Detect Previous Version("{8785CD50-6DA8-11DB-3D6C-1A86F5694AE1}")

is detecting previous version and setting variable with path to the previous version on 32-bit XP. But same statement is not detecting previous version on 64-bit Windows 7. I also checked registry on 64-bit Windows 7 and I can see product GUID entry {8785CD50-6DA8-11DB-3D6C-1A86F5694AE1} under HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr entVersion\Uninstall .

linder
02-20-2014, 12:33 AM
You have checked the wrong registry branch !!! You have to check the 32-bit branch, not the 64-bit one ;-)

If you see "{8785CD50-6DA8-11DB-3D6C-1A86F5694AE1}" under HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr entVersion\Uninstall on your 64-bit OS then this was a 64-bit install.

32-bit apps are registered here:

HKEY_LOCAL_MACHINE\Software\WOW6432node\Microsoft\ Windows\CurrentVersion\Uninstall

It works 100% :) Millions of installs are doing this !!! Please note that a 32-bit install will not detect your previous (hybrid) installed product because a hybrid install is done in 64-bit mode on x64 machines. So only a 64-bit mode installer can detect your 64-bit enabled install. 32-bit and 64-bit apps are completely different animals.

BTW, if you need a simple example, just let me know.

Friedrich