Você está offline; aguardando reconexão

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

Extended support for SQL Server 2005 ends on April 12, 2016

If you are still running SQL Server 2005 after April 12, 2016, you will no longer receive security updates and technical support. We recommend upgrading to SQL Server 2014 and Azure SQL Database to achieve breakthrough performance, maintain security and compliance, and optimize your data platform infrastructure. Learn more about the options for upgrading from SQL Server 2005 to a supported version here.

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
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:
Situação
A Microsoft confirmou que este é um problema nos produtos Microsoft que estão listados na seção "Aplica-se a".

Warning: This article has been translated automatically

Propriedades

ID do Artigo: 974247 - Última Revisão: 05/25/2013 09:07:00 - Revisão: 3.0

Microsoft SQL Server Compact 3.5

  • kbHotfixServer kbsurveynew kbqfe kbmt KB974247 KbMtpt
Comentários
="var m=document.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">