這段時間,手頭的項目接近收尾,以前不太注意的工程打包問題卻慢慢凸現出來,這裡指的不單單是制作一個可以安裝的工程安裝包,還有關於缺少運行環境時的數據庫實例的安裝和數據庫數據的安裝恢復。這裡先把關於MSDE打包進安裝程序的心得於大家分享,那麼咱們廢話少說。
當你的項目基本完成測試,准備發布的時候,制作一個用戶使用簡便的自動安裝包就成為編碼完成後的又一個需要解決的問題,工程開發的是否完滿,從安裝中,用戶應該會有個最初的體驗。
下面簡單介紹一下如何在工程中添加Microsoft SQL Server 2000 Desktop Engine (MSDE)的自動安裝合並模塊MSM:
1. 首先你需要下載MSDE2000的sp3安裝包。可以從下面的鏈接去下載,URL: http://www.microsoft.com/sql/downloads/2000/sp3.asp
2. 下載完成,你可以安裝或者用ZIP解壓到本地硬盤,將可以看到:Msi、MSM、Setup這3個目錄和setup等文件,其中的MSM文件夾中的東東就是本文要介紹的MSDE2000合並模塊。
3. 在你的工程中添加一個安裝工程(假設為MySetup1,路徑為c:\MySetup1),按照正常的步驟添加工程輸出(Project Output),選擇輸出文件(primary output)和內容文件(content files)兩項。
4. 添加合並模塊(Merge Moudle),選擇浏覽,指定到你的MSDE的MSM文件夾,選則MSM和msm\1033下的所有的文件(REPL.MSM、REPL_RES.MSM、 DMO_RES.MSM和DMO.MSM可以不選),打開。
5. 設置安裝工程的屬性(Properties)中的SearchPath,指定為你的MSM所在路徑(這時需要添加兩個:path\MSM和path\MSM\1033)。
6. 設置關於安裝程序的其他屬性咱們暫且不提,這是可以對你的安裝工程進行編譯了,當編譯通過後,你可以在c:\MySetup1\Debug\看到你的打包工程MySetup.msi。
7. 這是工程打包告一段落,下面我們需要修改打好的安裝包,使它可以在安裝完程序後自動安裝MSDE的一個實例(假設實例名為:MyServer)。現在我們需要用到MS的一個工具ORCA,下載地址:http://support.microsoft.com/default.aspx?scid=kb;EN-US;255905安裝了orca後就可以利用這個工具對我們的MySetup1.msi進行修改了。
8. 用ORCA打開安裝包文件MySetup.msi,找到Property這個table,ADD Row 在Propetry中填入SqlInstanceName,value中填入實例名MyServer。其他的參數請參見:http://support.microsoft.com/?id=810826和http://support.microsoft.com/default.aspx?scid=kb;en-us;281983
9. 所有的參數中有關密碼的屬性,我沒有成功,就是SqlSaPwd,這個參數是和SqlSecurityMode一起使用的,但是我一直沒有設置成功,密碼總是為空的,不知何故!
10. 選擇InstallExecuteSequence這個table,找到SetPropSQLMSDEInstalled這個Action,修改206為102;找到RemoveExistingProducts,修改1525為6601。保存,退出!
這時,在沒有SQL環境的機器上運行你的安裝包,在程序安裝完後,會自動安裝MSDE的MyServer實例,並在重起機器後,自動啟動Sql Server的實例。
=======================================================================
前一篇中介紹了如何連同Sql Server的桌面版本一同打包到安裝程序的簡單步驟,這裡還想就自己對於:發布程序到已經有SQL環境的計算機時,自動使用SQL的Osql來恢復指定的數據庫到你的SQL Server的Date中。
首先,在c:\創建一個臨時目錄,例如c:\TempBD ,拷貝Osql.exe到目錄下,拷貝你的數據庫備份(TruckDB)到目錄下;在目錄下分別創建Restore.bat和Restore.txt文件,內容如下:
1. Restore.bat文件內容:
osql -E -S -i C:\TempDB\Restore.txt