
There is a version mismatch which is not enabled as per the policy.

When the 64bit application that privately deploys SQL Server Compact SP1 is run, the ADO.NET Provider is loaded from GAC (version ) but native 64bit components are loaded from the application folder which is version. When the 32-bit version of the SQL Server Compact 3.5 SP2 is installed, it adds the ADO.NET provider () of version to the Global Assembly Cache (GAC) and the native x86 components are put under the %Program Files(x86)% folder. Install SQL Server 2008 R2 (this installs the 32-bit version of SQL Server Compact 3.5 SP2).Then, when you run a 64-bit application privately deploying SQL Server Compact SP1, It fails with the “Version Mismatch" exception. The following are some sample scenarios where this policy will be broken, and that will result in one of the previously mentioned two exceptions: In order to avoid various inconsistencies, a Compact ADO.NET provider of a certain version can talk only to the Compact native components of the same version. This provider in-turn communicates with the native Compact components. (Exception from HRESULT: 0x8007007E) CauseĬompact based applications generally program against the Compact ADO.NET provider (). Unable to load DLL 'sqlceme35.dll': The specified module could not be found. Please install SQL Server Compact binaries of matching version

This could be due to the presence of multiple instances of SQL Server Compact of different versions.

File version mismatch detected between ADO.NET Provider and native binaries of SQL Server Compact which could result in an incorrect functionality.
