REVISIÓN: Recibe un mensaje de error al ejecutar una aplicación basada en SQL Server Compact 3.5 después de instalar la versión de 32 bits de SQL Server Compact Edition 3.5 Service Pack 2 en un equipo x 64

Seleccione idioma Seleccione idioma
Id. de artículo: 974247 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Síntomas

En los equipos de 64 bits, una aplicación de SQL Server Compact ("Compact") base puede fallar con uno de los dos síntomas siguientes:
Síntoma 1
La aplicación está intentando cargar una versión de compacto que no es compatible con la versión que está instalada en el equipo. Las versiones incorrectas podrían provocar inestabilidad en la aplicación y se anulará la carga de compacto.

Síntoma 2
La aplicación no puede cargar los componentes nativos de SQL Server Compact que se corresponde con el proveedor ADO.NET.

Éstas son las excepciones exactas que están asociadas con estos problemas:

Excepción de falta de coincidencia de versión
No coincide de versión de archivo detectado entre el proveedor de ADO.NET y binarios nativos de SQL Server Compact que podría resultar en una funcionalidad incorrecta. Esto podría deberse a la presencia de varias instancias de SQL Server Compact de distintas versiones. Vuelva a instalar los binarios de SQL Server Compact de la misma versión de [versión de archivo del proveedor de ADO.NET = XXXX, versión del archivo binario nativo = YYYY]

No se puede cargar la dll de excepción"
No se puede cargar el archivo DLL 'sqlceme35.dll': no se pudo encontrar el módulo especificado. (Excepción de HRESULT: 0x8007007E)

Causa

Aplicaciones basadas en compactas generalmente programar basándose en el proveedor de ADO.NET Compact (System.Data.SqlServerCe.dll). Este proveedor a su vez se comunica con los componentes nativos de compactos. Con el fin de evitar inconsistencias distintos, un proveedor de ADO.NET compacta de una versión determinada sólo puede hablar con los componentes nativos compactos de la misma versión. Los siguientes son algunos escenarios de ejemplo donde se interrumpirá esta directiva, y que dará como resultado una de las dos excepciones mencionadas anteriormente:

Escenario de ejemplo 1

Instalar SQL Server 2008 R2 (Esto instala la versión de 32 bits de SQL Server Compact 3.5 SP2).A continuación, al ejecutar una aplicación de 64 bits, la implementación privada de SQL Server Compact SP1, se produce un error con la excepción de "Discrepancia de versiones".

Motivo del error

  • Cuando se instala la versión de 32 bits de la SQL Server Compact 3.5 SP2, agrega el proveedor ADO.NET (System.Data.SqlServerCe.dll) de la versión 3.5.8080 a la caché de ensamblados Global (GAC) y los componentes se colocan en la carpeta % programa (x 86) % nativo x 86.
  • Cuando se ejecuta la aplicación de 64 bits que privado implementa SQL Server Compact SP1, el proveedor de ADO.NET se carga desde GAC (versión 3.5.8080), pero los componentes nativos de 64 bits se cargan desde la carpeta de aplicación que es la versión 3.5.5692.0.
  • Hay una discrepancia de versiones que no está habilitada según la directiva.

Escenario de ejemplo 2

  • Instale la versión x 86 de SQL Server Compact 3.5 SP1 en un equipo de 64 bits.
  • A continuación, instale la versión x 64 de SQL Server Compact 3.5 SP1.
  • En el mismo equipo, descargue e instale la versión de 32 bits de SQL Server Compact 3.5 SP2 desde el Web.
  • Ejecutar una aplicación de 64 bits que utiliza SQL Server Compact SP1 o SP2.
  • Cuando se ejecuta la aplicación, se produce un error con el "no se puede cargar la dll" excepción.

Motivo del error

  1. Instalar la versión de 32 bits de SQL Server Compact 3.5 SP2, actualiza SQL Server Compact 3.5 SP1 x 86 instalaciones a SQL Server Compact 3.5 SP2. Da como resultado la instalación de x 86 de compacto sea distinto de la instalación de x 64.
  2. Cuando se ejecuta una aplicación de 64 bits que utiliza Compact SP1 o SP2 en el equipo, carga el proveedor de ADO.NET de la GAC (versión 3.5.8080). Sin embargo, no puede encontrar los binarios nativos de la misma versión en el sistema. Por lo tanto, se produce la excepción.

Solución

En cualquier punto determinado de tiempo, el estado correcto de un equipo de 64 bits, para SQL Server Compact, sería el siguiente:
  • Se instalan tanto los MSIs de x86 como los de amd64.
  • Tanto los MSIs de x86 como los de amd64 son de la misma versión.

Por lo tanto, si usted enfrenta los problemas similares, asegúrese de que el equipo tiene x 86 y amd64 paquetes MSI de Compact están instalados y son de la misma versión. En caso de que, no lo son, a continuación, instalar paquetes MSI de x 86 y x 64 SP2 compacto desde el vínculo siguiente según sea necesario:
http://www.Microsoft.com/downloads/details.aspx?FamilyID=E497988A-C93A-404C-B161-3A0B323DCE24&displaylang=en

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Se refiere a:".

Propiedades

Id. de artículo: 974247 - Última revisión: domingo, 10 de marzo de 2013 - Versión: 4.0
La información de este artículo se refiere a:
  • Microsoft SQL Server Compact 3.5
Palabras clave: 
kbHotfixServer kbsurveynew kbqfe kbmt KB974247 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 974247

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com