CORRECÇÃO: Recebe uma mensagem de erro quando executa uma aplicação baseada em SQL Server Compact 3.5 depois de instalar a versão de 32 bits do SQL Server Compact Edition 3.5 Service Pack 2 num computador x64

Traduções de Artigos Traduções de Artigos
Artigo: 974247 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Em computadores de 64 bits, uma aplicação de SQL Server Compact ("Compactar") com base poderá falhar com um dos seguintes sintomas:
Sintoma 1
A aplicação está a tentar carregar uma versão do CD é incompatível com a versão que está instalada no computador. Versões incorrectas poderiam conduzir a instabilidade da aplicação e o carregamento de compactar iria ser abortado.

Sintoma 2
A aplicação não consegue carregar os componentes nativos do SQL Server Compact que corresponde ao fornecedor de ADO.NET.

Seguem-se as excepções exactas que estão associadas estes problemas:

Excepção de erro de correspondência de versão
Ficheiro versão detectada falha de correspondência entre o fornecedor do ADO.NET e binários nativos do SQL Server Compact que possam resultar de uma funcionalidade incorrecta. Isto pode dever-se a presença de várias instâncias do SQL Server Compact de versões diferentes. Instale o SQL Server Compact binários do correspondente versão [versão de ficheiro do ADO.NET fornecedor = XXXX, versão de ficheiro binário nativa = aaaa]

Não é possível carregar ME dll excepção"
Não é possível carregar a DLL 'sqlceme35.dll': não foi possível encontrar o módulo especificado. (Excepção de HRESULT: 0x8007007E)

Causa

Geralmente programar aplicações baseadas em compactos contra o fornecedor do Compact ADO.NET (System.Data.SqlServerCe.dll). Este fornecedor em vez comunica com os componentes compactos nativos. Para evitar inconsistências diferentes, pode falar um fornecedor de ADO.NET compacta de uma determinada versão apenas para os componentes compactos nativos da mesma versão. Seguem-se alguns cenários de exemplo em que esta política será quebrada e que resultará em uma das duas excepções mencionadas anteriormente:

Cenário de exemplo 1

Instale o SQL Server 2008 R2 (este procedimento instala a versão de 32 bits do SQL Server Compact 3.5 SP2).Em seguida, quando executa uma aplicação de 64 bits privado implementação SQL Server Compact SP1, falhar com a excepção de "Erro de correspondência versão".

Motivo da falha

  • Quando a versão de 32 bits do SQL Server Compact 3.5 SP2 estiver instalada, adiciona o fornecedor do ADO.NET (System.Data.SqlServerCe.dll) da versão 3.5.8080 para a Cache de assemblagem Global (GAC) e x86 nativo componentes forem colocados sob a pasta % % de programa Files(x86).
  • Quando a aplicação de 64 bits que implementa privado SQL Server Compact SP1 é executada, o fornecedor do ADO.NET é carregado a partir GAC (versão 3.5.8080), mas os componentes de 64 bits nativo são carregados a partir da pasta de aplicação que é a versão 3.5.5692.0.
  • Existe um erro de correspondência de versão que não estiver de acordo com a política.

Cenário de exemplo 2

  • Instalar a versão x86 do SQL Server Compact 3.5 SP1 num computador de 64 bits.
  • Em seguida, instala a versão x64 do SQL Server Compact 3.5 SP1.
  • No mesmo computador, transfira e instale a versão de 32 bits do SQL Server Compact 3.5 SP2 a partir da Web.
  • Executar uma aplicação de 64 bits que utiliza o SQL Server Compact SP1 ou SP2.
  • Quando executa a aplicação, ocorre uma falha com o "não é possível carregar ME dll" excepção.

Razão da falha

  1. Instalar a versão de 32 bits do SQL Server Compact 3.5 SP2 actualiza o SQL Server Compact 3.5 SP1 x 86 instalações para o SQL Server Compact 3.5 SP2. Resulta na instalação x 86 do CD que está a ser diferente da instalação x64.
  2. Quando uma aplicação de 64 bits que utiliza Compact SP1 ou SP2 estiver em execução no computador, carrega o fornecedor do ADO.NET da GAC (versão 3.5.8080). No entanto, não conseguir localizar os binários nativos da mesma versão do sistema. Por conseguinte, a excepção-lança.

Resolução

Em qualquer altura determinada de tempo, o estado correcto de um computador de 64 bits, para o SQL Server Compact, seria a seguinte:
  • X86 e amd64 MSIs são instalados.
  • X86 e amd64 MSIs são a mesma versão.

Por conseguinte, se tem de enfrentar problemas semelhantes, certifique-se de que o computador tem x86 e amd64 MSIs de compactação estiverem instalado e estão a mesma versão. No caso, não são, em seguida, instale MSIs de x86 e x64 Compact SP2 da seguinte hiperligação conforme necessário:
http://www.microsoft.com/downloads/details.aspx?FamilyId=E497988A-C93A-404C-B161-3A0B323DCE24&displaylang=en

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".

Propriedades

Artigo: 974247 - Última revisão: 25 de maio de 2013 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server Compact 3.5
Palavras-chave: 
kbhotfixserver kbsurveynew kbqfe kbmt KB974247 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 974247

Submeter comentários

 

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