服务器 频道

实现自动安装SQL Server数据库

  其次,在你的工程中添加一个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(“\”))
  
0
相关文章