1、设置项目属性
点此出现如下对话框:
2、添加需要打包的文件,并设置安装目录
3、安装过程设置
点此出现以下对话框
安装前(Before Installing),安装中(While Installing),安装后(After Installing)的设置
此处重点讲如何在安装后自动创建数据库
在“(After Installing)”中添加Progress Bars
可在settings中设置说明文字
在Actions-On Start中设置执行创建数据库文件的语句。
-- These actions are performed when the screen is shown.
-- Note: this is normally where you would put the actions
-- that you want this screen to perform (i.e. the
-- actions that you want to show the progress of).
-- Tip: use the DlgProgressBar actions (such as SetRange,
-- SetPos and Step) to make the progress bars reflect
-- the current status of your actions.
local AppFolder =File.GetShortName( SessionVar.Get("%AppFolder%"));
local ProductVer = SessionVar.Get("%ProductVer%");
local Version= 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,Version);
DlgProgressBar.SetPos(CTRL_PROGRESS_BAR_01, 50);
File.Run("%AppFolder%\\Data\\CreateDatabase_BW_SMS.bat", Params, "", SW_MINIMIZE, true);
--执行安装路径Data文件夹下的CreateDatabase_BW_SMS.bat文件,传入 Params参数,就是开始属性;里面设置的参数
DlgProgressBar.SetPos(CTRL_PROGRESS_BAR_01, 100);
注意:File.Run("%AppFolder%\\Data\\CreateDatabase_BW_SMS.bat", Params, "", SW_MINIMIZE, true); 这句要执行,必须在安装目录Data文件夹下面存放以下三个文件。
4、CreateDatabase_BW_SMS.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'BW_SMS') RESTORE DATABASE BW_SMS FROM DISK ='%1\Data\BW_SMS_V%2%3' WITH MOVE 'BW_SMS_Data' TO '%1\Data\BW_SMS.mdf',MOVE 'BW_SMS_log' TO '%1\Data\BW_SMS.ldf'"
rem echo 正在启动SQL代理...
rem net start sqlserveragent
echo 正在更新SQL脚本...
osql -E -i %1\Data\BW_SMS_V%2%3.sql
echo 数据库创建成功!
备注:创建数据库的语句,传入参数后应该为
osql -E /Q "IF Not Exists (SELECT name FROM master.dbo.sysdatabases WHERE name = N'BW_SMS')
RESTORE DATABASE BW_SMS FROM DISK ='C:\Program Files\日报管理系统\Data\BW_SMS_V1.0.0标准版' WITH
MOVE 'BW_SMS_Data' TO 'C:\Program Files\日报管理系统\Data\BW_SMS.mdf',
MOVE 'BW_SMS_log' TO 'C:\Program Files\日报管理系统\Data\BW_SMS.ldf'"