FIX: 您收到錯誤訊息 x 64 電腦上安裝 32 位元版本的 SQL Server 壓縮版 3.5 Service Pack 2 之後,執行 SQL Server Compact 3.5 基礎的應用程式時

文章翻譯 文章翻譯
文章編號: 974247 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

徵狀

在 64 位元電腦上 SQL Server 壓縮 (「 壓縮 」) 基礎的應用程式失敗的其中一個下列兩個徵狀:
徵狀 1
應用程式嘗試載入與安裝在電腦的版本不相容的壓縮版本。不正確的版本可能會導致應用程式不穩定,並會中止壓縮載入。

徵狀 2
應用程式無法載入原生元件的 SQL Server Compact 對應於 ADO.NET 提供者。

確實與這些問題相關的例外狀況如下:

版本不相符的例外狀況
ADO.NET 提供者和原生的二進位碼檔案的 SQL Server 壓縮而造成不正確的功能之間所偵測到的檔案版本不符。 可能是因為多個 SQL Server Compact 不同版本的執行個體的存在。 請安裝相符的版本的 SQL Server 壓縮二進位碼檔案 [ADO.NET 提供者檔案版本 = XXXX 原生的二進位檔案版本 = YYYY]

無法載入 ME dll 例外狀況 」
無法載入 DLL 'sqlceme35.dll': 找不到指定的模組。(從 HRESULT 的例外狀況: 0x8007007E)

發生的原因

精簡架構的應用程式通常程式對壓縮型態的 ADO.NET 提供者 (System.Data.SqlServerCe.dll)。這個提供者中翻會與原生 Compact 元件進行通訊。為了要避免各種不一致性,只可以連絡開始壓縮的原生元件的相同版本 Compact ADO.NET 提供者特定版本。以下是一些範例案例,這個原則將會中斷,且所會產生先前所述的兩個例外狀況的其中一個:

範例案例 1

安裝 SQL Server 2008 R2 (此時會安裝 32 位元版本的 SQL Server Compact 3.5 SP2) 然後,當您執行 64 位元應用程式私用方式部署 SQL Server Compact SP1 它失敗與 「 版本不符 」 例外。

失敗原因

  • 安裝 32 位元版本的 SQL Server Compact 3.5 SP2 時它會將 ADO.NET 提供者 (System.Data.SqlServerCe.dll) 的版本 3.5.8080 新增到全域組件快取 (GAC) 和原生元件放在 %程式 Files(x86) %資料夾下的 x86 中。
  • 執行 64 位元應用程式的私用方式部署 SQL Server Compact SP1 時 ADO.NET 提供者載入從 GAC (版本 3.5.8080),但從應用程式資料夾即版本 3.5.5692.0 載入原生 64 位元元件。
  • 沒有版本不相符而不會為每個原則啟用。

範例案例 2

  • 在 64 位元電腦上安裝 x 86 版本的 SQL Server Compact 3.5 SP1。
  • 然後,您安裝 SQL Server Compact 3.5 SP1 x 64 的版本。
  • 在同一部電腦上您從下載並安裝 32 位元版本的 SQL Server Compact 3.5 SP2 Web。
  • 您執行 64 位元應用程式使用 SQL Server Compact SP1 或 SP2。
  • 您在執行應用程式時失敗與 「 無法載入 ME dll 例外狀況。

失敗原因

  1. 安裝 32 位元版本的 SQL Server Compact 3.5 SP2 x 86 安裝至 SQL Server Compact 3.5 SP2 升級 SQL Server Compact 3.5 SP1。它會產生的壓縮正在不同於 x 64 安裝 x 86 安裝。
  2. 當電腦上執行時使用壓縮的 SP1 或 SP2 的 64 位元應用程式時,從 GAC (版本 3.5.8080) 載入 ADO.NET 提供者。不過,它找不到原生的二進位碼檔案相同版本的系統上。因此,就會擲回的例外狀況。

解決方案

在任何給定的時間點時間,針對 SQL Server 壓縮的 64 位元電腦的正確的狀態就會是下列:
  • 已安裝 x 86 和 amd64 MSIs。
  • x86 和 amd64 MSIs 屬於相同的版本。

因此,如果您面對任何類似的問題時,請確定電腦有兩個 x86 和 amd64 MSIs 的壓縮時才安裝,它們是相同版本。萬一不會再安裝 Compact SP2 x86 和 x64 MSIs 從下列連結視需要:
http://www.microsoft.com/downloads/details.aspx?familyid=E497988A-C93A-404C-B161-3A0B323DCE24&displaylang=en

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。

屬性

文章編號: 974247 - 上次校閱: 2009年11月3日 - 版次: 2.2
這篇文章中的資訊適用於:
  • Microsoft SQL Server Compact 3.5
關鍵字:?
kbmt kbhotfixserver kbsurveynew kbqfe KB974247 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:974247
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

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