Simptomi
Na 64-bitnim računarima, aplikacija SQL Server Compact ("kompaktna") može da otkaže jedan od sledeća dva simptoma:simptom 1aplikacija pokušava da učita verziju sažimanja koja nije kompatibilna sa verzijom koja je instalirana na računaru. Neispravne verzije mogu dovesti do nestabilnosti aplikacija i učitavanje sažimanja bi bilo prekinuto. Simptom 2Aplikacija ne može da učita osnovne komponente sistema SQL Server Compact koja odgovara dobavljaču ADO.NET. Slede tačni izuzeci koji su povezani sa ovim problemima:
Neistovetna verzija datoteke sa neistovetnom verzijom između ADO.NET dobavljača i izvornih binarnih datoteka sistema SQL Server Compact, što može dovesti do neispravne funkcionalnosti. To može biti zbog prisustva višestrukih instanci sistema SQL Server Compact različitih verzija. Instalirajte SQL Server Compact binarne datoteke za podudarnu verziju [ADO.NET Provider verzija datoteke = XXXX, izvorna binarno verzija datoteke = YYYY] nije moguće učitavanje ME DLL izuzetka "nije moguće učitati DLL" sqlceme35. dll ": navedeni modul nije mogao biti pronađen. (Izuzetak od HREZULTAT: 0x8007007E)
Uzrok
Sažeti aplikacije se temelje na osnovu dobavljača kompakt ADO.NET (sistem. Data. SqlServerCe. dll). Ovaj dobavljač usluga komunicira sa izvornim Sažetnim komponentama. Da bi se izbegle različite nedoslednosti, kompaktni ADO.NET dobavljač određene verzije može da govori samo sa sažetom osnovnom komponentama iste verzije. Sledi nekoliko probnih scenarija u kojima će ove smernice biti prekinute i koje će rezultirati jednim od prethodno pomenutih dva izuzetka:
Primer scenarija 1
Instalirajte SQL Server 2008 R2 (instalira 32-bitnu verziju sistema SQL Server Compact 3,5 SP2). Zatim, kada pokrenete 64-bitnu aplikaciju privatnom primenom SQL Server Compact SP1, on neće uspeti sa izuzetkom "Nepodudaranje verzija".
Razlog otkazivanja
-
Kada se instalira 32-bitna verzija sistema SQL Server Compact 3,5 SP2, dodaje dobavljača ADO.NET (System. Data. SqlServerCe. dll) verzije 3.5.8080 u keš globalnog sklopa (GAC), a izvorni x86 komponente su stavljene u okviru fascikle% programskih datoteka (x86)%.
-
Kada se pokrene 64-bitna aplikacija koja se privatno raspoređuje sa SQL Server Compact SP1, ADO.NET dobavljač se učitava iz GAC-a (verzija 3.5.8080), ali se izvorne 64-bitne komponente učitavaju iz fascikle aplikacije koja je verzija 3.5.5692.0.
-
Postoji nepodudarnost verzija koja nije omogućena po smernicama.
Primer scenarija 2
-
Instalirate x86 verziju sistema SQL Server Compact 3,5 SP1 na 64-bitnom računaru.
-
Zatim instalirate x64 verziju sistema SQL Server Compact 3,5 SP1.
-
Na istom računaru preuzimate i instalirate 32-bitnu verziju sistema SQL Server Compact 3,5 SP2 sa Weba.
-
Pokrenuli ste 64-bitnu aplikaciju koja koristi SQL Server Compact SP1 ili SP2.
-
Kada pokrenete aplikaciju, ona neće uspeti da učita izuzetak "nije moguće učitati ME DLL".
Razlog otkazivanja
-
Instalacija 32-bitne verzije sistema SQL Server Compact 3,5 SP2 nadograđuje SQL Server Compact 3,5 SP1 x86 instalacije na SQL Server Compact 3,5 SP2. Rezultat je x86 instalacije sažimanja koji se razlikuje od x64 instalacije.
-
Kada se na računaru pokrene 64-bitna aplikacija koja koristi kompaktan SP1 ili SP2, učitava ADO.NET dobavljača sa GAC (verzija 3.5.8080). Međutim, ne može da pronađe izvorne binarne datoteke iste verzije na sistemu. Zbog toga to baca izuzetak.
Rešenje
U datom trenutku, tačno stanje 64-bitnog računara, u sistemu SQL Server Compact, biće sledeće:
-
Instalirane su i x86 i AMD64 MSIs.
-
I x86 i AMD64 MSIs su iste verzije.
Zbog toga, ako se suočite sa sličnim problemima, uverite se da računar ima i x86 i AMD64 Mzis (Kompaktne) instalacije i da su iste verzije. U slučaju, oni nisu, zatim instalirajte kompaktan SP2 x86 i x64 MSIs iz sledećih veza po potrebi:
Status
Microsoft je potvrdio da je ovo problem kod Microsoft proizvoda koji su navedeni u odeljku "odnosi se na".