使用Setup Factory 打包軟體,安裝時自動建立資料庫及資料庫中的表(效果類似sql server中的附加資料庫操作)
阿新 • • 發佈:2018-12-21
前提:已安裝Setup Fatory軟體、我使用的是 安裝工廠永樂漢化版,需要的請自行下載安裝
下面只列出關鍵性步驟,黃色字型較為關鍵,是一個出錯點
步驟一(關鍵):生成資料庫備份檔案,以及建表sql指令碼,和bat命令檔案
備份資料庫,生成檔案1,.bak檔案
生成建表語句.sql指令碼檔案
新建txt檔案,修改後綴名為.bat,並向其寫入指令碼
@echo off rem %1 為路徑引數; 要還原的資料庫備份.bak檔案存放的目錄 rem %2 為版本號;如 6.1.2 ; rem %3 為版本; 為“標準版”或“多探頭版” echo 正在啟動SQL SERVER服務... net start mssqlserver echo 正在建立資料庫,請稍等... osql -E /Q "IF Not Exists (SELECT name FROM master.dbo.sysdatabases WHERE name = N'InternalRadiationSystem') RESTORE DATABASE InternalRadiationSystem FROM DISK ='%1\Data\InternalRadiationSystem_V%2%3.bak' WITH MOVE 'InternalRadiationSystem' TO '%1\Data\InternalRadiationSystem.mdf',MOVE 'InternalRadiationSystem_log' TO '%1\Data\InternalRadiationSystem.ldf'" rem echo 正在啟動SQL代理... rem net start sqlserveragent echo 正在更新SQL指令碼... osql -E -i %1\Data\InternalRadiationSystem_V%2%3.sql echo 資料庫建立成功!
在debug資料夾中新建Data資料夾,將這三個檔案放入此資料夾中,並修改名稱(注意和上面版本版本號一致)
步驟二:開啟並操作 安裝工廠永樂漢化版(Setup Fatory)
選擇打包程式所在資料夾(如需要把原始碼打包,則從程式所在根目錄開始,如D:\MySoft。如只打包執行,則選擇到debug或者relese目錄,如D:\MySoft\bin\Debug)
步驟三(關鍵):設定引數以及增加建立資料庫以及資料表程式碼
設定引數
對於打包可執行檔案的操作
步驟四:加入安裝步驟,進度條,操作為執行上面的bat檔案
對screens進行設定
(重要)下面的file.run方法中執行bat檔案時,其實相當於命令列輸入 ..\..\..\.bat 引數1 引數2 引數3
因為預設的安裝路徑為C:\Program Files\檔名,因路徑中包含空格,故執行時會將C:\Program看成執行檔案,空格後的視為引數,會出錯,所以我在步驟二中把安裝路徑的引數修改為自定義的
上面的程式碼文字,用於複製貼上
local AppFolder =File.GetShortName( SessionVar.Get("%AppFolder%")); local ProductVer = SessionVar.Get("%ProductVer%"); local VersionType= SessionVar.Get("%VersionType%"); DlgProgressBar.SetPos(CTRL_PROGRESS_BAR_01, 30); local Params=String.Concat(AppFolder,""); Params=String.Concat(Params," "); Params=String.Concat(Params,ProductVer); Params=String.Concat(Params," "); Params=String.Concat(Params,VersionType); DlgProgressBar.SetPos(CTRL_PROGRESS_BAR_01, 50); File.Run("%AppFolder%\\Data\\CreateDatabase_InternalRadiationSystem.bat", Params, "", SW_MINIMIZE, true); DlgProgressBar.SetPos(CTRL_PROGRESS_BAR_01, 100); --執行安裝路徑Data資料夾下的CreateDatabase_InternalRadiationSystem.bat檔案,傳入 Params引數,就是開始屬性;裡面設定的引數(此句註釋不必複製)
步驟5:進行打包操作,點選打包按鈕即可
謝謝觀看,歡迎指正