一键式安装.Net FrameWork,MSDE,Web安装程序,Windows安装程序,还原数据库文件,注册表导入
Posted on 2006-07-13 08:53 james.dong 阅读(1128) 评论(0) 收藏 举报
来自:http://peopleyl.cnblogs.com/archive/2006/07/11/447997.html
何为"一键式安装"? 我的解释就是,运行安装程序的时候,把.Net FrameWork、Sql Server(MSDE)、Web应用程序、其它安装文件、注册表修改、数据库还原等操作一次安装完成,不需要客户做其它任何操作,而且安装过程中不用客户做任何操作,系统自动替代用户操作,比如装.Net FrameWork时候的"许可协议"安装文件正常自动处理.
原理就是用批处理来操作,具体代码如下.
解释如下:
1、"tools\WindowsInstaller"
"tools"是我建立的一个工具夹文件,目的是在不能自动更新的Windows 2000系统上安装也能正常运行.
2、"tools\WindowsInstaller" /quiet /norestart.
在Tools文件夹下可以找到WindowsInstaller3.1.Exe这个可执行文件, /quiet 参数表示静态安装,/norestart表示安装完毕后系统不重启.
3、 cd MSDE Setup cd..
进入MSDE安装文件夹里面安装数据库文件
4、"tools/sc" config MSSQLSERVER start = auto
"tools/sc" start MSSQLSERVER
还是去"tools"这里找到sc.exe, 首先设置 MSSQLSERVER的配置文件为自动启动,然后马上启动起来 MSSQLSERVER 服务,目的是以后好还原数据库文件.
5、cd Framework InStall /Q cd..
进入.Net FrameWork文件夹安装.Net FrameWork,InStall为解压后的主安装文件,/Q参数表示静态安装,不需客户参与.
6、cd tools reg IMPORT IESettings.reg cd..
还是去"tools"这里找到reg.exe, 将IESettings.reg 这个注册表导出文件导进当前安装的计算机注册表里面.
7、cd Web Setup /passive cd..
安装Web安装程序,参数 /passive 表示静态安装,不需客户参与.
8、If Not Exist "c:\GYYJB_DATA\MSSQL" Goto CreateDataFolder
这是数据库要恢复到的文件,不存在就创建,存在则恢复数据库.
9、osql.exe /Usa /PGYYJB /dmaster /i "C:\Program Files/restore.sql"
利用命令行工具 osql.exe 还原数据库.参数/Usa:用户名sa,/PGYYJB :密码GYYJB
参数"C:\Program Files/restore.sql" :还原数据库的Sql脚本.
10、cd C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322 aspnet_regiis -c
重新注册一下客户端脚本
下面是我还原数据库用的脚本
1、WindowsInstaller.Exe作用,未联网的Windows 2000用户的WindowsInstaller的版本应该是3.0以下,所以不支持上面写的几个安装参数,所以安装此文件更新到3.1.
2、Sc.exe作用,Sql Serser服务管理.Windows 2000 默认不安装此程序,在Windows 2000随机安装盘可以找到.XP,Windows 2003自带.
3、Reg.exe作用,注册表服务管理.Windows 2000 默认不安装此程序,在Windows 2000随机安装盘可以找到.XP,Windows 2003自带.
4、aspnet_regiis -c 当系统先装.Net FrameWork后装IIS时,缺少验证脚本等,重注册一下就可以.
5、到网上找个BAT编译成EXE文件的工具,如BATfoEXE,就可以做成一个漂亮的安装引导文件.
6、这时你可以看到一个基于命令行窗口安装程序,如果你想要一个有Windows窗体的安装程序怎么办呢?到网上随便找一个MSI制作工具就OK了.,例如InstallShield 等等
7、MSDE先安装,数据库文件后还原的问题.安装完数据库后,启动数据库服务(异步过程),需要几秒的时间,所以将数据库还原放到最后面.
8、删除数据库文件的问题,安装过程中如果原来还原的数据库文件存在,则新还原数据库操作,只创建数据库文件,并不能覆盖还原数据库文件,所以需要删除原来的数据库文件.
何为"一键式安装"? 我的解释就是,运行安装程序的时候,把.Net FrameWork、Sql Server(MSDE)、Web应用程序、其它安装文件、注册表修改、数据库还原等操作一次安装完成,不需要客户做其它任何操作,而且安装过程中不用客户做任何操作,系统自动替代用户操作,比如装.Net FrameWork时候的"许可协议"安装文件正常自动处理.
原理就是用批处理来操作,具体代码如下.
1
@echo 开始安装,请等待……
2
"tools\WindowsInstaller" /quiet /norestart
3
Goto SetupMsde
4
5
:SetupMsde
6
cd MSDE
7
Setup
8
cd..
9
"tools/sc" config MSSQLSERVER start = auto
10
"tools/sc" start MSSQLSERVER
11
Goto SetupFrameWork
12
13
:SetupFrameWork
14
cd Framework
15
InStall /Q
16
cd..
17
Goto RegImport
18
19
:RegImport
20
cd tools
21
reg IMPORT IESettings.reg
22
cd..
23
Goto SetupPrograme
24
25
:SetupPrograme
26
cd Web
27
Setup /passive
28
cd..
29
cd WebService
30
Setup /passive
31
cd..
32
cd client
33
Setup /passive
34
cd..
35
Goto Next
36![]()
37
:Next
38
Copy "tools\DB.bak" "C:\Program Files"
39
Copy "tools\restore.sql" "C:\Program Files"
40
If Not Exist "c:\GYYJB_DATA\MSSQL" Goto CreateDataFolder
41
Goto DelBackDataFile
42
43
:CreateDataFolder
44
C:
45
If not Exist "c:\GYYJB_DATA" Goto CreateGYYJB_DATA
46
Goto CreateMSSQL
47
48
:CreateGYYJB_DATA
49
MD "C:\GYYJB_DATA"
50
Goto CreateMSSQL
51![]()
52
:CreateMSSQL
53
MD "C:\GYYJB_DATA\MSSQL"
54
Goto DelBackDataFile
55![]()
56
:DelBackDataFile
57
Del /Q "c:\GYYJB_DATA\MSSQL"
58
Goto BackDataBase
59![]()
60
:BackDataBase
61
osql.exe /Usa /PGYYJB /dmaster /i "C:\Program Files/restore.sql"
62
del "C:\Program Files\DB.BAK"
63
DEL "C:\Program Files\restore.sql"
64
Goto RegIISClient
65![]()
66
:RegIISClient
67
c:
68
cd\
69
cd C:\WINNT\Microsoft.NET\Framework\v1.1.4322
70
aspnet_regiis -c
71
cd\
72
cd C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322
73
aspnet_regiis -c
74
Goto ExitSetup
75![]()
76
:ExitSetup
77
@echo 安装成功,感谢您使用远程教育管理系统
78![]()

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

解释如下:
1、"tools\WindowsInstaller"
"tools"是我建立的一个工具夹文件,目的是在不能自动更新的Windows 2000系统上安装也能正常运行.
2、"tools\WindowsInstaller" /quiet /norestart.
在Tools文件夹下可以找到WindowsInstaller3.1.Exe这个可执行文件, /quiet 参数表示静态安装,/norestart表示安装完毕后系统不重启.
3、 cd MSDE Setup cd..
进入MSDE安装文件夹里面安装数据库文件
4、"tools/sc" config MSSQLSERVER start = auto
"tools/sc" start MSSQLSERVER
还是去"tools"这里找到sc.exe, 首先设置 MSSQLSERVER的配置文件为自动启动,然后马上启动起来 MSSQLSERVER 服务,目的是以后好还原数据库文件.
5、cd Framework InStall /Q cd..
进入.Net FrameWork文件夹安装.Net FrameWork,InStall为解压后的主安装文件,/Q参数表示静态安装,不需客户参与.
6、cd tools reg IMPORT IESettings.reg cd..
还是去"tools"这里找到reg.exe, 将IESettings.reg 这个注册表导出文件导进当前安装的计算机注册表里面.
7、cd Web Setup /passive cd..
安装Web安装程序,参数 /passive 表示静态安装,不需客户参与.
8、If Not Exist "c:\GYYJB_DATA\MSSQL" Goto CreateDataFolder
这是数据库要恢复到的文件,不存在就创建,存在则恢复数据库.
9、osql.exe /Usa /PGYYJB /dmaster /i "C:\Program Files/restore.sql"
利用命令行工具 osql.exe 还原数据库.参数/Usa:用户名sa,/PGYYJB :密码GYYJB
参数"C:\Program Files/restore.sql" :还原数据库的Sql脚本.
10、cd C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322 aspnet_regiis -c
重新注册一下客户端脚本
下面是我还原数据库用的脚本
1
use master
2
if not exists(select * from sysdatabases where name = 'GYYJB')
3
begin
4
create database GYYJB
5
end
6
if exists(select * from sysdevices where name = 'DBdisk')
7
begin
8
exec sp_dropdevice 'DBdisk'
9
end
10
else
11
begin
12
exec sp_addumpdevice 'disk','DBdisk','DB.bak'
13
end
14
restore database GYYJB from disk='C:\Program Files\DB.bak'
15
with move 'GYYJB_Data' to 'c:\GYYJB_DATA\MSSQL\GYYJB_Data.mdf ',
16
move 'GYYJB_Log' to 'c:\GYYJB_DATA\MSSQL\GYYJB_Log.Ldf'
17![]()
其它说明
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

1、WindowsInstaller.Exe作用,未联网的Windows 2000用户的WindowsInstaller的版本应该是3.0以下,所以不支持上面写的几个安装参数,所以安装此文件更新到3.1.
2、Sc.exe作用,Sql Serser服务管理.Windows 2000 默认不安装此程序,在Windows 2000随机安装盘可以找到.XP,Windows 2003自带.
3、Reg.exe作用,注册表服务管理.Windows 2000 默认不安装此程序,在Windows 2000随机安装盘可以找到.XP,Windows 2003自带.
4、aspnet_regiis -c 当系统先装.Net FrameWork后装IIS时,缺少验证脚本等,重注册一下就可以.
5、到网上找个BAT编译成EXE文件的工具,如BATfoEXE,就可以做成一个漂亮的安装引导文件.
6、这时你可以看到一个基于命令行窗口安装程序,如果你想要一个有Windows窗体的安装程序怎么办呢?到网上随便找一个MSI制作工具就OK了.,例如InstallShield 等等
7、MSDE先安装,数据库文件后还原的问题.安装完数据库后,启动数据库服务(异步过程),需要几秒的时间,所以将数据库还原放到最后面.
8、删除数据库文件的问题,安装过程中如果原来还原的数据库文件存在,则新还原数据库操作,只创建数据库文件,并不能覆盖还原数据库文件,所以需要删除原来的数据库文件.
· AES 加密模式演进:从 ECB、CBC 到 GCM 的 C# 深度实践
· InnoDB为什么不用跳表,Redis为什么不用B+树?
· 记一次 C# 平台调用中因非托管 union 类型导致的内存访问越界
· [EF Core]聊聊“复合”属性
· 那些被推迟的 C# 14 特性及其背后的故事
· 博客园出海记-开篇:扬帆启航
· 微软开源的 MCP 教程「GitHub 热点速览」
· 记一次 .NET 某汽车控制焊接软件 卡死分析
· 关于布尔类型的变量不要加 is 前缀,被网友们吐槽了,特来完善下
· C#中的多级缓存架构设计与实现深度解析