使用Setup Factory 打包软件,安装时自动创建数据库及数据库中的表(效果类似sql server中的附加数据库操作)

前提:已安装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:进行打包操作,点击打包按钮即可

 

 

谢谢观看,欢迎指正

.NET 4 dotnet4 Friday, December 08, 2017 .Net4.0°²×°¼ì²â function isDotNet_Installed() -- .Net 4 Reg Key local DotNet_Key = "SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full"; --Check to see if the registry key exists local DotNet_Registry = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, DotNet_Key); if (DotNet_Registry == false) then -- The registry key does not exist -- Run the .NET Installation script -- Output to the log file that .NET could not be found, so it will be installed. SetupData.WriteToLogFile("Info\t.NET 4 Module: No version of .NET 4 was found. .NET 4 will be installed.\r\n", true); return false; else -- The key does exist -- Get the .NET install success value from the registry local DotNet_Install_Success = Registry.GetValue(HKEY_LOCAL_MACHINE, DotNet_Key, "Install", true); if (DotNet_Install_Success == "1") then -- Check the version key. local DotNet_Install_Version = Registry.GetValue(HKEY_LOCAL_MACHINE, DotNet_Key, "Version", true); -- Compare the returned value against the needed value Compare = String.CompareFileVersions(DotNet_Install_Version, "4.0.30319"); if (Compare == 0 or Compare == 1) then -- .NET version 4 is installed already SetupData.WriteToLogFile("Info\t.NET 4 Module: .NET version 4 is installed already\r\n", true); return true; else SetupData.WriteToLogFile("Info\t.NET 4 Module: A lesser version of .NET 4 was found on the users system.\r\n", true); return false; end else -- The success value wasn't found -- Run the .NET Installation script -- Output to the log file that .NET could not be found, so it will be installed. SetupData.WriteToLogFile("Info\t.NET 4 Module: No version of .NET 4 was found. .NET 4 will be installed.\r\n", true); return f
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值