其次,在你的工程中添加一个Installer Class:选中Project主工程,添加Installer Class,名称假定为installer1.选择instller1的代码页,添加下面的代码:
Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary)
''重写install方法
Dim file As System.IO.File
If file.Exists("C:\Program Files\Microsoft SQL Server\MSSQL\Data\TruckDB_data.mdf") = True Then Exit Sub
MyBase.Install(stateSaver)
Dim CheckedDir As System.IO.Directory
If CheckedDir.Exists("C:\Program Files\Microsoft SQL Server\MSSQL\Data") = False Then
CheckedDir.CreateDirectory("C:\Program Files\Microsoft SQL Server\MSSQL\Data")
End If
Dim FullPath As String
Dim Asm As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()
Dim strConfigLoc As String
strConfigLoc = Asm.Location
Dim file As System.IO.File
If file.Exists("C:\Program Files\Microsoft SQL Server\MSSQL\Data\TruckDB_data.mdf") = True Then Exit Sub
MyBase.Install(stateSaver)
Dim CheckedDir As System.IO.Directory
If CheckedDir.Exists("C:\Program Files\Microsoft SQL Server\MSSQL\Data") = False Then
CheckedDir.CreateDirectory("C:\Program Files\Microsoft SQL Server\MSSQL\Data")
End If
Dim FullPath As String
Dim Asm As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()
Dim strConfigLoc As String
strConfigLoc = Asm.Location
Dim strTemp As String
strTemp = strConfigLoc
''提取安装路径
strTemp = strTemp.Remove(strTemp.LastIndexOf("\"), Len(strTemp) - strTemp.LastIndexOf("\"))
''Copy DateBase to computer.
If CreatDIR(strTemp) = False Then
''失败,反安装
Me.Uninstall(stateSaver)
Exit Sub
Else
End If
If InstallDB(strTemp) = False Then
‘失败,反安装
Me.Uninstall(stateSaver)
Exit Sub
Else
End If
‘删除数据库临时文件
DeleteDIR(“c:\TempDB”)
DeleteDIR(strTemp + “\TempDB”)
End Sub
Public Overrides Sub Uninstall(ByVal stateSaver As System.Collections.Idictionary)
‘执行反安装
‘利用反射提取安装路径
MyBase.Uninstall(stateSaver)
Dim Asm As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()
Dim strConfigLoc As String
strConfigLoc = Asm.Location
Dim strTemp As String
strTemp = strConfigLoc
strTemp = strTemp.Remove(strTemp.LastIndexOf(“\”), Len(strTemp) – strTemp.LastIndexOf(“\”))
实现自动安装SQL Server数据库
0
相关文章