2012-10-31 128 views
6

我正在嘗試部署使用SQL Server CE 4.0數據庫的小型Windows窗體應用程序。我不希望每個運行此應用程序的系統都必須安裝SQL Server CE 4.0,因此我試圖獲取應用程序中包含的任何必需的DLL。SQL Server CE 4.0部署問題 - 哪些文件是必需的?

當我檢查參考列表時,SQL Server CE 4.0的唯一參考是System.Data.SqlServerCe。包括DLL爲,System.Data.SqlServerCe.dll,嘗試連接到數據庫時仍然會導致以下錯誤:

Unable to load the native components of SQL Server Compact corresponding to the ADO.NET provider of version 8876. Install the correct version of SQL Server Compact. Refer to KB article 974247 for more details.

我已經看到了一些文章談到這個不同版本的SQL Server CE的,但它們上市據我所知,其他版本的DLL。應用程序將運行的系統應該至少都具有安裝了.NET 4.0的Windows 7,如果這有所幫助的話。

我想就設在這裏添加的文件中所示的步驟中的鏈接:http://erikej.blogspot.com/2011/02/using-sql-server-compact-40-with.html

與這些文件包含在構建,程序編譯沒有任何錯誤,但是當一個備用系統上運行的GUI從不出現(公共Form1()的一部分包含一個從SQL CE數據庫中獲取數據的方法),程序在幾秒鐘後關閉。事件查看器顯示此錯誤:

Faulting application name: Dispatch Review Assistant.exe, version: 1.0.0.0, time stamp: 0x50915d3c Faulting module name: KERNELBASE.dll, version: 6.1.7601.17932, time stamp: 0x503285c2 Exception code: 0xe0434352 Fault offset: 0x000000000000caed Faulting process id: 0x1028 Faulting application start time: 0x01cdb78c10761c73 Faulting application path: C:\Users\deLucain\Desktop\Release\Dispatch Review Assistant.exe Faulting module path: C:\Windows\system32\KERNELBASE.dll Report Id: 4e4f45e3-237f-11e2-bd76-14dae92102de

回答

3

我們有相同的錯誤消息顯示了做私人部署時(即包括應用程序文件夾庫)的SQLCE 4.0應用程序。

在添加對我們項目的引用時,我們根據文檔添加了x64和x86文件夾(以及相關的dll)。

在這一點上,我們得到了錯誤:

Unable to load the native components of SQL Server Compact corresponding to the ADO.NET provider of version 8876. Install the correct version of SQL Server Compact. Refer to KB article 974247 for more details.

在我們的環境中,我們發現,AMD64文件夾下找到:

%程序Files%\ Microsoft SQL Server的Compact Edition \ v4.0 \ Private

也是需要的。

將其添加到項目中並引用包含的dll後,我們的問題得到解決。