FIX: U ontvangt een foutbericht wanneer u een SQL Server Compact 3.5-toepassing uitvoert nadat u de 32-bits versie van SQL Server Compact Edition 3.5 Service Pack 2 hebt geïnstalleerd op een x64 computer

Symptomen

Op computers met 64-bits kan SQL Server Compact ('cd') op basis van een-toepassing mislukken met een van de volgende twee problemen:
Symptoom 1
De toepassing is bij het laden van een versie van de cd die niet compatibel is met de versie die op de computer is geïnstalleerd. Onjuiste versies kunnen leiden tot instabiliteit van de toepassing en het laden van de cd zou worden afgebroken.



Symptoom 2
De toepassing kan de eigen onderdelen van SQL Server Compact die overeenkomt met de ADO.NET-provider niet laden.



De exacte uitzonderingen die gekoppeld aan deze problemen zijn zijn:

Versie incompatibel uitzondering
Bestand versie overeen tussen ADO.NET-Provider en native binaire bestanden van SQL Server Compact die leiden een onjuiste functionaliteit tot kunnen. Dit kan zijn vanwege de aanwezigheid van meerdere exemplaren van SQL Server Compact van verschillende versies. Installeer SQL Server Compact binaire bestanden van de overeenkomende versie [ADO.NET providerversie = XXXX, eigen versie van het binaire bestand jjjj =]

Ik kan dll niet laden uitzondering'
Kan niet laden van DLL-bestand 'sqlceme35.dll': de opgegeven module kan niet worden gevonden. (Uitzondering op HRESULT: 0x8007007E)

Oorzaak

Compact gebaseerde toepassingen programma in het algemeen tegen de Compact ADO.NET-provider (System.Data.SqlServerCe.dll). Deze voorziening in Draai communiceert met de oorspronkelijke onderdelen Compact. Een compacte ADO.NET-provider van een bepaalde versie kunt om te voorkomen dat verschillende inconsistenties, praten alleen op de compacte native componenten van dezelfde versie. Hieronder vindt u enkele voorbeeldscenario's waar dit beleid zal worden verbroken en dat leidt tot een van de eerder genoemde twee uitzonderingen:

Voorbeeldscenario 1

SQL Server 2008 R2 (Hiermee installeert u de 32-bits versie van SQL Server Compact 3.5 SP2) installeren. Vervolgens tijdens het uitvoeren van een 64-bits toepassing privé implementatie van SQL Server Compact SP1 is mislukt met de uitzondering 'Versie komt niet overeen'.

Reden voor de fout

  • Als de 32-bits versie van SQL Server Compact 3.5 SP2 is geïnstalleerd, wordt de ADO.NET-provider (System.Data.SqlServerCe.dll) van versie 3.5.8080 toegevoegd aan de globale Assembly-Cache (GAC) en de eigen x86 onderdelen worden geplaatst onder de map % Files(x86) programma %.
  • Als de 64-bits toepassing die privé implementeert de SQL Server Compact SP1 wordt uitgevoerd, de ADO.NET-Provider wordt geladen vanuit de GAC (versie 3.5.8080) maar native 64-bits onderdelen worden geladen vanuit de map die versie 3.5.5692.0 is.
  • Er is een versie die niet aan de hand van het beleid is ingeschakeld.

Voorbeeldscenario 2

  • U installeert de x86 versie van SQL Server Compact 3.5 SP1 op een 64-bits computer.
  • Vervolgens installeert u de x64 versie van SQL Server Compact 3.5 SP1.
  • Op dezelfde computer, download en installeer de 32-bits versie van SQL Server Compact 3.5 SP2 vanaf het Web.
  • Je hebt een 64-bits toepassing uitvoert die gebruikmaakt van SQL Server Compact SP1 of SP2.
  • Wanneer u de toepassing uitvoert, mislukt met de 'kan geen DLL-bestand laden' uitzondering.

Oorzaak van fout

  1. De 32-bits versie van SQL Server Compact 3.5 SP2 installeert SQL Server Compact 3.5 SP1 bijgewerkt x86 installaties van SQL Server Compact 3.5 SP2. Dit resulteert in de x86 installatie van cd verschillen van de x64 installatie.
  2. Wanneer een 64-bits toepassing die gebruikmaakt van Compact SP1 of SP2 op de computer wordt uitgevoerd, wordt de ADO.NET-Provider geladen vanuit de GAC (versie 3.5.8080). Het kan echter niet native binaire bestanden van dezelfde versie vinden op het systeem. Daarom deze uitzondering genereert.

Oplossing

Op een bepaald moment zijn de juiste status van een 64-bits computer, SQL Server Compact, de volgende:
  • Zowel x86 als amd64 MSI-bestanden zijn geïnstalleerd.
  • Zowel x86 als amd64 MSI-bestanden zijn van dezelfde versie.

Daarom, als u dergelijke problemen wordt geconfronteerd, ervoor zorgen dat de computer beide x86 heeft en amd64 MSI-bestanden van Compact zijn geïnstalleerd en van dezelfde versie zijn. Voor het geval, ze zijn niet installeren Compact SP2 MSI's x86 en x64 uit de volgende koppeling als nodig is:

Status

Microsoft heeft bevestigd dat dit probleem kan optreden in de Microsoft-producten die worden vermeld in de sectie 'Van toepassing op'.
Eigenschappen

Artikel-id: 974247 - Laatst bijgewerkt: 15 feb. 2017 - Revisie: 1

Feedback