locked
Installshield LE, SQL CE 3.5 SP2 not installed on Windows 7 RRS feed

  • Question

  • Hi, I have an Installshield package with Microsoft SQL CE 3.5 SP2 ticked in Redistributables under Specify Application Data.

    On XP all is fine, however in Windows 7 64bit it doesn't detect it needs to install CE when it is not there and the application subsequently fails.

    Anyone have experience how to fix this? I'm basically looking for an elegant way of packaging up the .NET framework 4, SQL CE 3.5SP2 and application in one installer that will do all Win XP/Vista/7. Also conscious that Windows 7 64bit needs 64bit CE, XP needs 32bit...



    • Moved by Helen Zhou Friday, August 19, 2011 6:48 AM (From:ClickOnce and Setup & Deployment Projects)
    Thursday, August 18, 2011 6:25 PM

Answers

  • Ok I was in a bad mood earlier! This is the solution if anyone is interested.

    In C:\Program Files (x86)\InstallShield\2011LE\SetupPrerequisites (or equivalent install path) make two new files Microsoft SQL CE 3.5 SP2 (x86).prq and Microsoft SQL CE 3.5 SP2 (x64).prq

    Microsoft SQL CE 3.5 SP2 (x86).prq source:

    <?xml version="1.0" encoding="UTF-8"?>
    <SetupPrereq>
    	<conditions>
    		<condition Type="32" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v3.5\ENU" FileName="DesktopRuntimeVersion" ReturnValue="3.5.8080.0"></condition>
    	</conditions>
    	<operatingsystemconditions>
    		<operatingsystemcondition MajorVersion="5" MinorVersion="1" PlatformId="2" CSDVersion="" Bits="1" ProductType="1" ServicePackMajorMin="2"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="5" MinorVersion="2" PlatformId="2" CSDVersion="" Bits="1" ProductType="2|3" ServicePackMajorMin="1"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="5" MinorVersion="2" PlatformId="2" CSDVersion="" Bits="4" ProductType="1"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="6" MinorVersion="0" PlatformId="2" CSDVersion="" Bits="1"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="6" MinorVersion="0" PlatformId="2" CSDVersion="" Bits="1" ProductType="2|3"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="6" MinorVersion="1" PlatformId="2" CSDVersion="" Bits="1"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="5" MinorVersion="2" PlatformId="2" CSDVersion="" Bits="4" ProductType="2|3" ServicePackMajorMin="1"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="6" MinorVersion="0" PlatformId="2" CSDVersion="" Bits="4"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="6" MinorVersion="0" PlatformId="2" CSDVersion="" Bits="4" ProductType="2|3"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="6" MinorVersion="1" PlatformId="2" CSDVersion="" Bits="4"></operatingsystemcondition>
    	</operatingsystemconditions>
    	<files>
    		<file LocalFile="&lt;ISProductFolder&gt;\SetupPrerequisites\SQL CE 3.5\SSCERuntime_x86-ENU.msi" URL="http://go.microsoft.com/fwlink/?LinkId=166085&amp;clcid=0x409" CheckSum="86AF6D36DFF214718DCD35D851249D3D" FileSize="0,3164160"></file>
    	</files>
    	<execute file="SSCERuntime_x86-ENU.msi" cmdline="/q /norestart" cmdlinesilent="/q /norestart" returncodetoreboot="1641,3010,4123" requiresmsiengine="1"></execute>
    	<properties Id="{B1165B38-CA52-11E0-A63D-7C004824019B}" Description="This prerequisite installs the Microsoft SQL Server Compact 3.5 SP2 (x86)."></properties>
    	<behavior Reboot="2"></behavior>
    </SetupPrereq>
    

    Microsoft SQL CE 3.5 SP2 (x64).prq source:

    <?xml version="1.0" encoding="UTF-8"?>
    <SetupPrereq>
    	<conditions>
    		<condition Type="32" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server Compact Edition\v3.5\ENU" FileName="DesktopRuntimeVersion_x64" ReturnValue="3.5.8080.0"></condition>
    	</conditions>
    	<operatingsystemconditions>
    		<operatingsystemcondition MajorVersion="5" MinorVersion="2" PlatformId="2" CSDVersion="" Bits="4" ProductType="1"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="5" MinorVersion="2" PlatformId="2" CSDVersion="" Bits="4" ProductType="2|3" ServicePackMajorMin="1"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="6" MinorVersion="0" PlatformId="2" CSDVersion="" Bits="4"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="6" MinorVersion="0" PlatformId="2" CSDVersion="" Bits="4" ProductType="2|3"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="6" MinorVersion="1" PlatformId="2" CSDVersion="" Bits="4"></operatingsystemcondition>
    	</operatingsystemconditions>
    	<files>
    		<file LocalFile="&lt;ISProductFolder&gt;\SetupPrerequisites\SQL CE 3.5\SSCERuntime_x64-ENU.msi" URL="http://go.microsoft.com/fwlink/?LinkId=166086&amp;clcid=0x409"></file>
    	</files>
    	<execute file="SSCERuntime_x64-ENU.msi" cmdline="/q /norestart" cmdlinesilent="/q /norestart" returncodetoreboot="1641,3010,4123" requiresmsiengine="1"></execute>
    	<properties Id="{B9E5C848-CA52-11E0-9D02-80004824019B}" Description="This prerequisite installs the Microsoft SQL Server Compact 3.5 SP2 (x64)."></properties>
    	<behavior Reboot="2"></behavior>
    </SetupPrereq>
    
    
    Now in Installer project > Redistributables, tick both, and go to Set Prequiste Installation Order and ensure the x86 is before x64, and .NET framework before both etc if distributing it.

    This causes SQL CE 3.5 SP2 x86 to only be installed on x86 machines, and both x86 and x64 versions to be sequentially installed on x64 machines.

    • Edited by mr marky mark Friday, August 19, 2011 2:04 PM formatting
    • Marked as answer by mr marky mark Friday, August 19, 2011 2:04 PM
    Friday, August 19, 2011 1:59 PM

All replies

  • This isn't an InstallShield forum, but I think that "Also conscious that Windows 7 64bit needs 64bit CE, XP needs 32bit.." is not exactly correct. The Install.txt from the redist says this:

    Installing SQL Server Compact 3.5 SP2 on a 64-bit computer (x64 or AMD64):
    1. Install the 32-bit version of SQL Server Compact 3.5 SP2 by running the SSCERuntime-ENU-x86.msi
    2. Than install the 64-bit version of SQL Server Compact 3.5 SP2 by running the SSCERuntime-ENU-x64.msi


    Phil Wilson
    Thursday, August 18, 2011 9:58 PM
  • Hi mr,

    For InstallShield question, please visit http://community.installshield.com/forumdisplay.php?f=133 forum to get better help.

    Sincerely,


    Helen Zhou [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Friday, August 19, 2011 6:48 AM
  • Thanks for replies.

    Helen - I appreciate that this isn't an InstallShield forum, but the InstallShield LE that ships with Visual Studio isn't supported by InstallShield either, as you'll see on those forums it starts with the next version up - Express, which needs to be purchased. From what I also understand, Microsoft is discontinuing VS Setup Projects in favour of Installshield, so there's a bit of a grey area here.

    LE seems to be lacking x64 support, which prompts the question why even bother if it doesn't fully support the now industry standard Windows 7 x64? 

    PhilWilson - you're right, and again *sigh* why can't Microsoft wrap this up in one installer instead of passing on the donkey work - after all, it's supposed to be a "portable" database application..


    Friday, August 19, 2011 8:44 AM
  • Ok I was in a bad mood earlier! This is the solution if anyone is interested.

    In C:\Program Files (x86)\InstallShield\2011LE\SetupPrerequisites (or equivalent install path) make two new files Microsoft SQL CE 3.5 SP2 (x86).prq and Microsoft SQL CE 3.5 SP2 (x64).prq

    Microsoft SQL CE 3.5 SP2 (x86).prq source:

    <?xml version="1.0" encoding="UTF-8"?>
    <SetupPrereq>
    	<conditions>
    		<condition Type="32" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v3.5\ENU" FileName="DesktopRuntimeVersion" ReturnValue="3.5.8080.0"></condition>
    	</conditions>
    	<operatingsystemconditions>
    		<operatingsystemcondition MajorVersion="5" MinorVersion="1" PlatformId="2" CSDVersion="" Bits="1" ProductType="1" ServicePackMajorMin="2"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="5" MinorVersion="2" PlatformId="2" CSDVersion="" Bits="1" ProductType="2|3" ServicePackMajorMin="1"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="5" MinorVersion="2" PlatformId="2" CSDVersion="" Bits="4" ProductType="1"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="6" MinorVersion="0" PlatformId="2" CSDVersion="" Bits="1"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="6" MinorVersion="0" PlatformId="2" CSDVersion="" Bits="1" ProductType="2|3"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="6" MinorVersion="1" PlatformId="2" CSDVersion="" Bits="1"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="5" MinorVersion="2" PlatformId="2" CSDVersion="" Bits="4" ProductType="2|3" ServicePackMajorMin="1"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="6" MinorVersion="0" PlatformId="2" CSDVersion="" Bits="4"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="6" MinorVersion="0" PlatformId="2" CSDVersion="" Bits="4" ProductType="2|3"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="6" MinorVersion="1" PlatformId="2" CSDVersion="" Bits="4"></operatingsystemcondition>
    	</operatingsystemconditions>
    	<files>
    		<file LocalFile="&lt;ISProductFolder&gt;\SetupPrerequisites\SQL CE 3.5\SSCERuntime_x86-ENU.msi" URL="http://go.microsoft.com/fwlink/?LinkId=166085&amp;clcid=0x409" CheckSum="86AF6D36DFF214718DCD35D851249D3D" FileSize="0,3164160"></file>
    	</files>
    	<execute file="SSCERuntime_x86-ENU.msi" cmdline="/q /norestart" cmdlinesilent="/q /norestart" returncodetoreboot="1641,3010,4123" requiresmsiengine="1"></execute>
    	<properties Id="{B1165B38-CA52-11E0-A63D-7C004824019B}" Description="This prerequisite installs the Microsoft SQL Server Compact 3.5 SP2 (x86)."></properties>
    	<behavior Reboot="2"></behavior>
    </SetupPrereq>
    

    Microsoft SQL CE 3.5 SP2 (x64).prq source:

    <?xml version="1.0" encoding="UTF-8"?>
    <SetupPrereq>
    	<conditions>
    		<condition Type="32" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server Compact Edition\v3.5\ENU" FileName="DesktopRuntimeVersion_x64" ReturnValue="3.5.8080.0"></condition>
    	</conditions>
    	<operatingsystemconditions>
    		<operatingsystemcondition MajorVersion="5" MinorVersion="2" PlatformId="2" CSDVersion="" Bits="4" ProductType="1"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="5" MinorVersion="2" PlatformId="2" CSDVersion="" Bits="4" ProductType="2|3" ServicePackMajorMin="1"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="6" MinorVersion="0" PlatformId="2" CSDVersion="" Bits="4"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="6" MinorVersion="0" PlatformId="2" CSDVersion="" Bits="4" ProductType="2|3"></operatingsystemcondition>
    		<operatingsystemcondition MajorVersion="6" MinorVersion="1" PlatformId="2" CSDVersion="" Bits="4"></operatingsystemcondition>
    	</operatingsystemconditions>
    	<files>
    		<file LocalFile="&lt;ISProductFolder&gt;\SetupPrerequisites\SQL CE 3.5\SSCERuntime_x64-ENU.msi" URL="http://go.microsoft.com/fwlink/?LinkId=166086&amp;clcid=0x409"></file>
    	</files>
    	<execute file="SSCERuntime_x64-ENU.msi" cmdline="/q /norestart" cmdlinesilent="/q /norestart" returncodetoreboot="1641,3010,4123" requiresmsiengine="1"></execute>
    	<properties Id="{B9E5C848-CA52-11E0-9D02-80004824019B}" Description="This prerequisite installs the Microsoft SQL Server Compact 3.5 SP2 (x64)."></properties>
    	<behavior Reboot="2"></behavior>
    </SetupPrereq>
    
    
    Now in Installer project > Redistributables, tick both, and go to Set Prequiste Installation Order and ensure the x86 is before x64, and .NET framework before both etc if distributing it.

    This causes SQL CE 3.5 SP2 x86 to only be installed on x86 machines, and both x86 and x64 versions to be sequentially installed on x64 machines.

    • Edited by mr marky mark Friday, August 19, 2011 2:04 PM formatting
    • Marked as answer by mr marky mark Friday, August 19, 2011 2:04 PM
    Friday, August 19, 2011 1:59 PM