Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

registry entry on x64 machine not detected


5 replies to this topic

Mariscal

Mariscal
  • Full Members
  • 50 posts

Posted 27 May 2010 - 18:52

Hi All,

On a 64-bit Windows 7 or Windows 2008 Server, my installation fails to detect a registry entry for the .Net FW 3.5 SP1. The registry location I am searching for is HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{CE2CDD62-0124-36CA-84D3-9F4DCF5C5BD9}.

I am using the RegDBKeyExist function in my Installscript, and it is returning a non-zero value. Is it looking under Wow6432Node by default, and if so, how can I keep it from doing this?

Incidentally, this is an Installscript MSI project.

Thanks, for any feedback that anyone may have.

kirann_hegde

kirann_hegde
  • Full Members
  • 93 posts

Posted 29 May 2010 - 13:40

What version of InstallShield are you using?
Have you marked your Installer as 64 bit?


To the best of my knowledge, Idriver.exe was a 32 bit application up until IS2009. So what it means that ,even if you have marked your installation as 64 bit in the template summary property, you would have to still redirect your script to access the 64 bit hive of the registry.

The help for Installshield has details on how to access the 64 bit part of the registry.
Hope this helps.

Regards,
Kiran Hegde



Mariscal

Mariscal
  • Full Members
  • 50 posts

Posted 01 June 2010 - 17:13

Hi Kirann,

I am using IS 2010, and yes, my installation is set to x64.

Thanks very much for your tip; I'll try the redirection...

Mariscal

Mariscal
  • Full Members
  • 50 posts

Posted 01 June 2010 - 23:25

Another observation based on that same bit of installscript: when I call "if (SYSINFO.WINNT.bWin7_Server2008R2) then" it does not work on a Windows 7 or Win 2008 machine. Instead, "SYSINFO.WINNT.bWinVista" returns a non-zero value. For this bit of installscript, it's not a problem, but if I need to target the O/S, it will become one.

Is this an IS 2010 bug?

kirann_hegde

kirann_hegde
  • Full Members
  • 93 posts

Posted 02 June 2010 - 10:09

when I call "if (SYSINFO.WINNT.bWin7_Server2008R2) then" it does not work on a Windows 7 or Win 2008 machine

I am not sure if this is a bug in InstallShield 2010.Check with InstallShield.

If i understand your original problem correctly, you are trying to determine if the 64 bit version of .Net FW 3.5 SP1 is installed. If this is what you are trying to do, there are better ways to do it than querying for the registry key.


1)Use the MSI function MsiQueryProductState.
Take a look at : http://msdn.microsof...3(v=VS.85).aspx

Pass this function the product GUID of dot net FW 3.5 SP1 and you will get a status back indicating if the product is installed.

The GUID should be {CE2CDD62-0124-36CA-84D3-9F4DCF5C5BD9}.Same as the one in the registry key you are trying to query.

2)Use the Installscript function : Is

These are just my suggestions provided you want to do what i am believing you are trying to(i.e attempting to find out if .Net 3.5 SP! is installed).
If not, never mind. Please ignore my suggestions.

Also if this not what you are attempting to figure out, there are other functions which can give you information about an installed product, much of which can be found under the registry key you are attempting to query.

Regards,
Kiran Hegde

Mariscal

Mariscal
  • Full Members
  • 50 posts

Posted 02 June 2010 - 20:26

Hi Kiran,

Thanks, that is quite helpful! I'll look into using these methods. My script has become a bit unwieldy.