c# entity-framework sql-server-ce

c# - No se pueden cargar los componentes nativos de SQL Server Compact correspondientes al proveedor ADO.NET



entity-framework sql-server-ce (4)

En mi proyecto, uso la base de datos SQL CE 3.5 con el marco de la entidad y seguí este artículo, pero tengo esta excepción:

No se pueden cargar los componentes nativos de SQL Server Compact correspondientes al proveedor ADO.NET de la versión 8080. Instale la versión correcta de SQL Server Compact. Consulte el artículo KB 974247 para obtener más detalles.

Todos los detalles

System.Data.SqlServerCe.SqlCeException was unhandled Message=Unable to load the native components of SQL Server Compact corresponding to the ADO.NET provider of version 8080. Install the correct version of SQL Server Compact. Refer to KB article 974247 for more details. Source="" HResult=-1 NativeError=-1 StackTrace: at System.Data.SqlServerCe.NativeMethods.LoadNativeBinaries() at System.Data.SqlServerCe.SqlCeConnection..ctor() at System.Data.SqlServerCe.SqlCeProviderFactory.CreateConnection() at System.Data.EntityClient.EntityConnection.GetStoreConnection(DbProviderFactory factory) at System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString) at System.Data.Objects.ObjectContext..ctor(String connectionString, String defaultContainerName) at DAL.OimDBEntities..ctor() at DAL.OimRepository..ctor() at Microsoft.Rtc.Collaboration.Sample.SubscribePresenceView.UCMASampleSubscribePresenceView.Subscribe() at Microsoft.Rtc.Collaboration.Sample.SubscribePresenceView.UCMASampleSubscribePresenceView.Run() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() InnerException: System.DllNotFoundException Message=Unable to load DLL ''sqlceme35.dll'': The specified module could not be found. (Exception from HRESULT: 0x8007007E) Source=System.Data.SqlServerCe TypeName="" StackTrace: at System.Data.SqlServerCe.NativeMethods.GetSqlCeVersionInfo(IntPtr& pwszVersion) at System.Data.SqlServerCe.NativeMethods.LoadValidLibrary(String modulePath, Int32 moduleVersion) at System.Data.SqlServerCe.NativeMethods.LoadNativeBinaries() InnerException:


Deberá copiar el siguiente archivo y el directorio completo en la ubicación donde se ejecuta su .exe en su servidor. Este archivo y carpeta son más probables en el directorio C: / Archivos de programa (x86) / Microsoft SQL Server Compact Edition / V4.0 / Private

System.Data.SqlServerCe.dll Toda la carpeta amd64 No estoy seguro de qué se usa en la carpeta amd64, pero tan pronto como copié esto sobre mi aplicación, comencé a funcionar. También puede obtener su archivo System.Data.SqlServerCe.dll haciendo clic en Visual Studio debajo de la carpeta Referencias y luego en la pestaña de propiedades, configurando "Copiar Local" en Verdadero y luego, cuando cree su aplicación, ese archivo estará en su carpeta de liberación.


Recibí este error con una instalación privada de SqlServerCE. Tenía una referencia a System.Data.SqlServerCe.dll en mi proyecto, pero faltaban otros dlls (componentes nativos) necesarios para SqlServerCE. Los "componentes nativos" están en las subcarpetas x86 y amd64 de la carpeta "privada" de SqlServerCE. Debe asegurarse de que se copien en la carpeta de salida de su proyecto.


Tuve un problema similar. Estaba abriendo una base de datos compacta de framework sql y me dio el siguiente error:

No se pueden cargar los componentes nativos de SQL Server Compact correspondientes al proveedor ADO.NET de la versión 8080. Instale la versión correcta de SQL Server Compact. Consulte el artículo KB 974247 para obtener más detalles.

Al buscar el artículo, me llevó al siguiente Link . La siguiente cita explica lo que salió mal:

Las aplicaciones basadas en Compact generalmente se programan contra el proveedor de ADO.NET compacto (System.Data.SqlServerCe.dll). Este proveedor a su vez se comunica con los componentes nativos de Compact. Para evitar varias inconsistencias, un proveedor de ADO.NET compacto de una versión determinada puede hablar solo con los componentes nativos compactos de la misma versión.

Al final lo resolví descargando e instalando el paquete de servicio en el siguiente link.


Yo también había encontrado el mismo problema. el problema era que había usado el siguiente comando install-package EFcodeFirst.SqlServerCompact para obtener el sqlCE. la versión que fue descargada por el administrador de paquetes fue 4.0 y mientras que en mi disco duro la versión actual fue 3.5

descargue la última versión 4.0 de la siguiente ubicación http://www.microsoft.com/en-us/download/details.aspx?id=17876 solucioné mi problema