這段時間,手頭的項目接近收尾,以前不太注意的工程打包問題卻慢慢凸現出來,這裡指的不單單是製作一個可以安裝的工程安裝包,還有關於缺少運行環境時的資料庫執行個體的安裝和資料庫資料的安裝恢複。這裡先把關於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到目錄下,拷貝你的Database Backup(TruckDB)到目錄下;在目錄下分別建立Restore.bat和Restore.txt檔案,內容如下:
1. Restore.bat檔案內容:
osql -E -S -i C:\TempDB\Restore.txt