SQL Compact 3.5 + Compact Managed 2.0 ???

Discussion in 'microsoft.public.sqlserver.ce' started by Phil H, Jul 17, 2009.

  1. Phil H

    Phil H Guest

    I'm upgrading a platform to use SQL Compact for CF3.5
    We previously included all the files manually, but I've upgraded everything
    I can find and removed all the manual file entries.
    All the dlls seem to get copied to the image fine.

    However, the image was 2MB larger than expected, and I found that SQL
    Compact is correctly dependant upon CF3.5, but the Compact Managed Provider
    is still dependant upon CF2.0 !

    All help gratefully received, as I have spent most of the day browsing for
    posts about anything like this.
     
    Phil H, Jul 17, 2009
    #1
    1. Advertisements

  2. Phil H

    Phil H Guest

    Well, I've found the solution if anybody is interested, but it is very
    annoying.
    This guy describes the bug, and this is the only thing that I could find
    after finding the only thing that seemed to be the culprit:
    http://www.sparkcontest.com/forum.aspx?g=posts&t=110

    Essentially there is a link left in to cf2 even after you have installed
    sqlce sp1

    clipped from his post in case it is dropped ...
    C:\WINCE600\PUBLIC\CEBASE\OAK\MISC\sqlcompact.bat
    Change all instances of "SYSGEN_DOTNETV2" to "SYSGEN_DOTNETV35".
    Change all instances of "SYSGEN_DOTNETV2_HEADLESS" to
    "SYSGEN_DOTNETV35_HEADLESS".
    This will now ensure that .NET 3.5 is a dependency instead of .NET 2.0.


    Please try harder guys.
    The embedded world cannot afford 2MB baggage !
     
    Phil H, Jul 20, 2009
    #2
    1. Advertisements

  3. I gave up on including the SQL CE actually IN the OS myself. For those
    people who need it, installing the latest version is a better choice. The
    installer for SQL CE allows it to be placed on a storage card, if that works
    best on your device, and this avoids the problem of tying the device closely
    to a given version of the database, which seems to change more-rapidly than
    device operating systems typically get updated. If all of your users use
    all devices with SQL CE, of course, that's dumb and the fix you found there
    is the best you can do...

    Paul T.

    "Phil H"
     
    Paul G. Tobey [eMVP], Jul 20, 2009
    #3
  4. Phil H

    Phil H Guest

    We are OEMs Paul, so finding these little 'opportunities for improvement' has
    become a regular occurence !

    phil
     
    Phil H, Jul 20, 2009
    #4
  5. My friend Balasubramaniam Bodedhala who worked on Platform Builder updates
    for SQL CE v3.5 SP1 has to say this:

    SQL CE v3.5 SP1 runs perfectly fine on both .NET CF 2.0 and .NET CF 3.5.
    Since, not all devices would have .NET CF v3.5, we made a decition to chose
    ..NET CF v2.0 as the automatic dependancy in Platform Builder. We also were
    not sure when .NET CF v3.5 is going to get integrated into Platform Builder
    as .NET CF v3.5 for for PB was not available when SQL CE v3.5 SP1 released.
    We did clearly mention on how to remove .NET CF v2.0 and have .NET CF v3.5
    in the release notes.

    For your ease:
    Download URL:
    http://www.microsoft.com/downloads/...9e-d020-465e-b451-73127b30b79f&DisplayLang=en
    In the read me:

    <ReadmeContent>
    Adding support for .NET Compact Framework v3.5:

    · Users can add support for .NET CF v3.5 in two ways. In
    sqlcompact.bat under "%_WINCEROOT%\public\cebase\oak\misc\" change the
    following lines from "if not "%SYSGEN_DOTNETV2_HEADLESS%"=="1" set
    SYSGEN_DOTNETV2=1" to "if not "%SYSGEN_DOTNETV35_HEADLESS%"=="1" set
    SYSGEN_DOTNETV35=1". Or from the catalog items view in PB remove .NET CF
    v2.0 and select .NET CF v3.5.

    · .NET CF v3.5 is available as a Platform Builder 6.0 update. More
    information for .NET CF v3.5 is provided here -
    http://support.microsoft.com/kb/947561.

    </ReadmeContent>

    I hope that clears up the confusion.

    Thanks,
    Laxmi

    "Phil H"
     
    Laxmi Narsimha Rao Oruganti [MSFT], Jul 22, 2009
    #5
  6. Phil H

    Phil H Guest

    Thank You Laxmi.
    The issue is one of (a) unexpected coupling causing us to think that the
    install was wrong, and (b) an unwanted extra 2MB of flash being used for no
    apparent reason.

    The readme file containing the instructions you copied is a very big one.
    Not all of us read all the content of all the files !
    Also, the section these instructions are in is simply titled 'sql compact',
    'integration ...', 'adding support for ... 3.5'.
    If you have just read that the SP has support for 3.5 then it seems of no
    import.

    Perhaps this kind of thing would be better titled 'Changing dependancy from
    CF2.0 to CF3.5'. That kind of title is much less ambiguous.

    Anyway, I would have preferred if the install had looked for the existence
    of 3.5 before it decided to use 2.0. I would describe what has been
    implemented as a 'hard-coded dependancy', which is sure to trip up quite a
    few people.
    It is difficult enough working out which service packs should be deployed on
    what products without these kind of things.
    Remember that we are developing code in vs2008 to deploy onto ce6 using
    vs2005 !
    Service Packs and QFEs for all those are seemingly developed by 3 different
    teams !

    regards
    phil
     
    Phil H, Jul 22, 2009
    #6
  7. I think that the right way for it to work is not to have ANY dependency
    between SQL Compact and .NET CF <any version>. At most, a new user of
    Platform Builder would have one extra build cycle as a result of this, if he
    forgot to add the .NET CF manually. That doesn't seem like a big problem to
    me. Alternatively, you could have two catalog items for SQL Compact, one
    that pulls in .NET CF 2.0 and one that pulls in .NET CF 3.5. Picking one is
    definitely the wrong thing to do, though, especially since, if your OS
    configuration has both .NET CF 2.0 and .NET CF 3.5 in it IT WON'T WORK.

    Paul T.

    "Phil H"
     
    Paul G. Tobey [eMVP], Jul 22, 2009
    #7
  8. I wish Platform Builder has a mechanism where I could specify my intent "a
    version range like 2.0 to 3.5 and pick any if not already picked". AFAIK,
    we did not find any way to automagically start depending on what the user
    has already selected. I will forward a feature request to PB as that is
    what is in my hands.

    Coming to not take automatic dependancy is a hard thing. In PB, users
    expect the dependant stuff is automatically selected and we just can't break
    that guarranty.

    Thanks,
    Laxmi


    "Paul G. Tobey [eMVP]" <p space tobey no spam AT no instrument no spam DOT
    com> wrote in message news:uXhpu$...
     
    Laxmi Narsimha Rao Oruganti [MSFT], Jul 24, 2009
    #8
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.