SQLCE 部屬步驟
- 2010-11-18
- 11857
- 0
最近有個小網站用 SQL CE 來當作資料庫,開發完畢後要上正式機卻發現了一些問題,以下是處理的步驟。
將檔案都放到 Service 後就跑出了討厭的錯誤訊息
無法開啟 ********** database.sdf。未安裝提供者'System.Data.SqlServerCe.3.5'
一開始依據 MSDN 上面的說明實作,不過方法有兩種當然不可能選安裝的方式,直接選擇「私用檔案架構部署」的步驟
「私用檔案架構部署」(Private file–based deployment) 是指安裝程序中將必要的 SQL Server Compact 3.5 DLL 當成檔案包含在專案中 (而不是參考目標電腦上已存在的 DLL)。 如果您將必要的 DLL 和應用程式包含在一起,就不會需要安裝 SQL Server Compact 3.5。 所以也就不再需要管理憑證。
您可以使用 ClickOnce 部署進行私用檔案架構部署。 如果您這麼做,必須記得清除 SQL Server Compact 3.5 必要條件,安裝程式才不會進行安裝。
若要使用私用檔案架構部署方式部署 SQL Server Compact 3.5 資料庫
若要開啟 [專案設計工具],請在 [方案總管/資料庫總管] 中按兩下 [我的專案] (如果正在處理 Visual Basic 專案的話) 或 [屬性] (如果正在處理 C# 專案的話)。
按一下 [發行] 索引標籤。
按一下 [必要條件],然後清除 [SQL Server Compact 3.5] 的核取方塊。
關閉 [專案設計工具]。
移至內含 SQL Server Compact 3.5 DLL 的目錄。 這位於 C:\Program Files\Microsoft SQL Server Compact Edition\v3.5。
選取七個 SQL Server Compact 3.5 DLL 並進行複製:
sqlceca35.dll
sqlcecompact35.dll
sqlceer35EN.dll
sqlceme35.dll
sqlceoledb35.dll
sqlceqp35.dll
sqlcese35.dll
將 DLL 貼入 [方案總管/資料庫總管] 中的專案。
在 [方案總管/資料庫總管] 中選取全部 7 個 DLL,並開啟 [屬性] 視窗。
將 [複製到輸出目錄] 屬性設定為 [有更新時才複製]。
這會在應用程式更新時,以新的 DLL 取代現有應用程式中舊的 DLL。
在 [方案總管/資料庫總管] 中按一下 [顯示所有檔案] 按鈕。
展開 [參考] 節點。
選取 [System.Data.SqlServerCe]。
將 [複製到本機] 屬性設定為 [True]。
因為部署電腦的全域組件快取中有 SqlServerCe DLL,所以您必須將應用程式設定為使用輸出目錄中的 DLL。
在 [方案總管/資料庫總管] 中以滑鼠右鍵按一下專案,然後選取 [發行] 以開啟 [發行精靈]。
完成精靈,以發行應用程式。
應用程式已準備好安裝。 請移至安裝目標位置,並安裝應用程式以確認。
因為 SqlServerCe 不是64位元的所以 demo 的 64位元Service就會發生這種錯誤,最簡單的解決方法,讓網站跑32位元即可。
這樣就大功告成了。
回應討論