[wix-users] Checking for SQL Server x64

John Cooper JoCooper at jackhenry.com
Wed Jun 15 13:11:06 PDT 2016


I would punt on the presence of SQL Server.  It is very unusual (most database admins I know would NOT allow an application on one of their servers) to deploy locally.  The usual deployment method is to deploy remotely.  My libraries check the remote server for the ability to establish a connection first, but then deployment occurs in short order.

By requiring a local-only deployment, you eliminate a remote deployment which is the usual case.

--
John Merryweather Cooper
Senior Software Engineer | Integration Development Group | Enterprise Notification Service
Jack Henry & Associates, Inc.® | Lenexa, KS  66214 | Ext:  431050 |JoCooper at jackhenry.com




-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Brian Enderle
Sent: Wednesday, June 15, 2016 3:02 PM
To: WiX Users <wix-users at lists.wixtoolset.org>
Subject: [wix-users] Checking for SQL Server x64

The e-mail below is from an external source.  Please do not open attachments or click links from an unknown or suspicious origin.

I need to check a system to make sure SQL Server 2008 R2, 2012 or 2014 (all
64 bit versions) are installed before allowing the user to install the program.

I started with the following condition to check that SQL 2014 is installed

    <!-- Go find the SQLServer 64-bit version from the registry. -->
    <Property Id="SQLVERSION" Value="NA">
      <RegistrySearch Id="SQLVERSION"
                      Type="raw"
                      Root="HKLM"
                      Key="SOFTWARE\Microsoft\Microsoft SQL Server"
                      Name="InstalledInstances" />
    </Property>

    <Condition Message="A 64 bit version of SQL Server 2008 R2 or later was not found on this machine.">
      <![CDATA[(SQLVERSION <> "SQL2014")]]>
    </Condition>

When I run the installer on a machine with SQL 2014 x64, the installer proceeds as I would expect.  When I run on a machine with just SQL 2008 R2 x64, the installer proceeds but I would expect it to display the condition message and NOT proceed with installation.

I have a few questions concerning this:

1. Is the Key I am searching the correct key.  If SQL server 2014 x86 is installed will HKLM\SOFTWARE\Microsoft\Microsoft SQL Server still equate to 'SQL2014'.  If so, is there a way to check the bitness of the installed SQL?

2. When I view the install log (run with verbose logging) I see this:

AppSearch: Property: SQLVERSION, Signature: SQLVERSION MSI (c) (3C:FC) [15:52:17:369]: Note: 1: 2262 2: Signature 3: -2147287038

Is there a way to display the value assigned to SQLVERSION in the verbose logging?

3. My final solution needs to check if SQL 2008 R2, SQL 2012 or SQL 2102 is installed, something like:

<Condition Message="A 64 bit version of SQL Server 2008 R2 or later was not found on this machine.">
      <![CDATA[(SQLVERSION <> "SQL2014")]]> AND  <![CDATA[(SQLVERSION <> "SQL2012")]]> AND <![CDATA[(SQLVERSION <> "SQL2008R2")]]>
    </Condition>

Is this the correct way to do this?


Brian

If you can't explain it simply, you don't understand it well enough.  - Albert Einstein

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/

NOTICE: This electronic mail message and any files transmitted with it are intended
exclusively for the individual or entity to which it is addressed. The message, 
together with any attachment, may contain confidential and/or privileged information.
Any unauthorized review, use, printing, saving, copying, disclosure or distribution 
is strictly prohibited. If you have received this message in error, please 
immediately advise the sender by reply email and delete all copies.



More information about the wix-users mailing list