ID do artigo: 974247 - Última revisão: terça-feira, 3 de novembro de 2009 - Revisão: 2.2

CORRECÇÃO: Receber uma mensagem de erro ao executar um aplicativo baseado em SQL Server Compact 3.5 após você instalar a versão de 32 bits do SQL Server Compact Edition 3.5 Service Pack 2 em um computador em x 64

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sintomas

Em computadores de 64 bits, SQL Server Compact (? compactar ?) com base em um aplicativo pode falhar com um dos dois seguintes sintomas:
Sintoma 1
O aplicativo está tentando carregar uma versão de CD que é incompatível com a versão instalada no computador. Versões incorretas podem levar à instabilidade do aplicativo e o carregamento de compactar poderia ser anulado.

Sintoma 2
O aplicativo não é possível carregar os componentes nativos do SQL Server Compact que corresponde ao provedor ADO.NET.

As exceções exatas que estão associadas esses problemas são:

Exceção de incompatibilidade de versão
Incompatibilidade de versões de arquivo detectada entre provedor ADO.NET e binários nativos do SQL Server Compact que poderia resultar em uma funcionalidade incorreta. Isso pode ser devido à presença de várias instâncias do SQL Server Compact de diferentes versões. Instale o SQL Server Compact binários da versão correspondente [versão do arquivo ADO.NET Provider = XXXX, versão do arquivo binário nativo = YYYY]

Não foi possível carregar dll Exception a ME ?
Não é possível carregar a DLL 'sqlceme35.dll': O módulo especificado não foi encontrado. (Exceção de HRESULT: 0x8007007E)

Causa

Aplicativos baseados no compactos geralmente program provedor Compact ADO.NET (System.Data.SqlServerCe.dll). Este provedor em vez se comunica com os componentes nativos Compact. Para evitar inconsistências diversas, um provedor Compact ADO.NET de uma determinada versão poderão se comunicar somente para os componentes nativos Compact da mesma versão. Estes são alguns cenários de exemplo em que essa diretiva será quebrada e isso resultará em um das duas exceções mencionadas anteriormente:

Cenário de exemplo 1

Instalar o SQL Server 2008 R2 (Isso instala a versão de 32 bits do SQL Server Compact 3.5 SP2) .Clique, quando você executa um aplicativo de 64 bits em particular Implantando o SQL Server Compact SP1, ele falhará com a ? incompatibilidade de versão"exceção.

Motivo da falha

  • Quando a versão de 32 bits do SQL Server Compact 3.5 SP2 é instalado, ele adiciona o provedor ADO.NET (System.Data.SqlServerCe.dll) da versão 3.5.8080 ao GAC (cache de assembly global) e o x 86 nativo componentes são colocados na pasta % Program programas (x 86) %.
  • Quando o aplicativo de 64 bits em particular implanta o SQL Server Compact SP1 é executado, o provedor do ADO.NET é carregado do GAC (versão 3.5.8080) mas componentes nativos de 64 bits são carregados a partir de pasta do aplicativo versão 3.5.5692.0.
  • Há uma incompatibilidade de versão que não está habilitada, de acordo com a diretiva.

Cenário de exemplo 2

  • Você instalar a versão x 86 do SQL Server Compact 3.5 SP1 em um computador de 64 bits.
  • Em seguida, você instale a versão x 64 do SQL Server Compact 3.5 SP1.
  • No mesmo computador, você baixe e instale a versão de 32 bits do SQL Server Compact 3.5 SP2 da Web.
  • Executar um aplicativo de 64 bits que usa o SQL Server Compact SP1 ou SP2.
  • Quando você executa o aplicativo, ele falha com a ? Impossível carregar ME dll "exceção.

Motivo da falha

  1. Instalando a versão de 32 bits do SQL Server Compact 3.5 SP2 atualiza o SQL Server Compact 3.5 SP1 x 86 instalações para o SQL Server Compact 3.5 SP2. Isso resulta na instalação x 86 compactar sendo diferente do que a instalação do x 64.
  2. Quando um aplicativo de 64 bits que usa o Compact SP1 ou SP2 está sendo executado no computador, ele carrega o provedor ADO.NET do GAC (versão 3.5.8080). No entanto, ele não é possível encontrar binários nativos da mesma versão no sistema. Portanto, ele lança a exceção.

Resolução

Em qualquer ponto do tempo, o estado correto do computador de 64 bits, para o SQL Server Compact, seria o seguinte:
  • X 86 e amd64 MSIs são instalados.
  • X 86 e amd64 MSIs são da mesma versão.

Portanto, se você enfrenta problemas semelhantes, certifique-se de que o computador tem dois x 86 e amd64 MSIs do Compact estão instalados e eles são da mesma versão. Caso, eles não forem, instale, em seguida, Compact SP2 x 86 e x 64 MSIs no seguinte link conforme necessário:
http://www.microsoft.com/downloads/details.aspx?familyid=E497988A-C93A-404C-B161-3A0B323DCE24&displaylang=en (http://www.microsoft.com/downloads/details.aspx?familyid=E497988A-C93A-404C-B161-3A0B323DCE24&displaylang=en)

Situação

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

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server Compact 3.5
Palavras-chave: 
kbmt kbhotfixserver kbsurveynew kbqfe KB974247 KbMtpt
Tradução automáticaTraduçã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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 974247  (http://support.microsoft.com/kb/974247/en-us/ )