CORREÇÃO: Você recebe uma mensagem de erro quando você executa 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 x64

Traduções deste artigo Traduções deste artigo
ID do artigo: 974247 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

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

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

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

Exceção de incompatibilidade de versão
Incompatibilidade de versão do arquivo detectada entre o provedor do 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 de arquivo do provedor do ADO.NET = XXXX, versão de arquivo binário nativo = YYYY]

Não é possível carregar dll de exceção mim"
Não é possível carregar a DLL 'sqlceme35. dll': O módulo especificado não pôde ser encontrado. (Exceção de HRESULT: 0x8007007E)

Causa

Aplicativos baseados no Compact geralmente programar o provedor do ADO.NET Compact (SqlServerCe). Este provedor em vez se comunica com os componentes nativos de Compact. Para evitar inconsistências diversas, um provedor ADO.NET compacto de uma determinada versão pode conversar somente com os componentes nativos Compact da mesma versão. A seguir estão alguns cenários de exemplo em que essa diretiva será quebrada e que resultará em uma das duas exceções mencionadas anteriormente:

Cenário de exemplo 1

Instale o SQL Server 2008 R2 (Isso instala a versão de 32 bits do SQL Server Compact 3.5 SP2).Em seguida, quando você executa um aplicativo de 64 bits a implantação particular do SQL Server Compact SP1, ele falhará com a exceção de "Incompatibilidade de versão".

Motivo da falha

  • Quando a versão de 32 bits do SQL Server Compact 3.5 SP2 é instalada, ele adiciona o provedor do ADO.NET (SqlServerCe) da versão 3.5.8080 para o Global Assembly Cache (GAC) e x86 nativo componentes são colocados na pasta % % programa (x86).
  • Quando o aplicativo de 64 bits que implanta em particular 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 da pasta de aplicativo que é a versão 3.5.5692.0.
  • Há uma incompatibilidade de versão não estiver de acordo com a diretiva.

Cenário de exemplo 2

  • Você pode instalar a versão x86 do SQL Server Compact 3.5 SP1 em um computador de 64 bits.
  • Em seguida, você pode instalar a versão x64 do SQL Server Compact 3.5 SP1.
  • No mesmo computador, você pode baixar e instala a versão de 32 bits do SQL Server Compact 3.5 SP2 da Web.
  • Você executa um aplicativo de 64 bits que usa o SQL Server Compact SP1 ou SP2.
  • Quando você executa o aplicativo, ele falha com "Não é possível carregar dll mim" 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 86 x do CD que está sendo diferente do que a instalação do x64.
  2. Quando um aplicativo de 64 bits que usa o Compact SP1 ou SP2 estiver em execução no computador, ele carrega o provedor do ADO.NET do GAC (versão 3.5.8080). No entanto, não é possível localizar binários nativos da mesma versão do sistema. Portanto, ele lança a exceção.

Resolução

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

Portanto, se você enfrenta problemas semelhantes, certifique-se de que o computador com x86 e amd64 MSIs do Compact estão instalados e eles são da mesma versão. Em todo caso, não são, em seguida, instale MSIs de x86 e x64 SP2 Compact do link a seguir conforme necessário:
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 Microsoft que estão listados na seção "Aplica-se a".

Propriedades

ID do artigo: 974247 - Última revisão: sábado, 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 pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.
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