怎样在打包程序中自动安装SQL Server数据库?

1、创建安装项目“Setup1安装项目

文件菜单上指向添加项目,然后选择新建项目

添加新项目对话框中,选择项目类型窗格中的安装和部署项目,然后选择模板窗格中的安装项目。在名称框中键入 “setup1”

单击确定关闭对话框。

项目被添加到解决方案资源管理器中,并且文件系统编辑器打开。

属性窗口中,选择 ProductName 属性,并键入亿万电器成套报价系统

 

2、在安装项目中创建安装程序类(install.cs)。

添加创建数据库(InstallDatabase.txt)、删除数据库(DropDatabase.txt)、初始化数据基本数据(InitializeData.txt)脚本文件,将属性“生成操作”设为“嵌入的资源”。代码如下:

  1using System;
  2
  3using System.Collections;
  4
  5using System.ComponentModel;
  6
  7using System.Configuration.Install;
  8
  9using System.Data;
 10
 11using System.Data.SqlClient;
 12
 13using System.IO;
 14
 15using System.Reflection;
 16
 17using System.Text.RegularExpressions;
 18
 19using System.Windows.Forms;
 20
 21using System.Text;
 22
 23using Microsoft.Win32;
 24
 25 
 26
 27namespace install
 28
 29{
 30
 31     /// <summary>
 32
 33     /// Installer 的摘要说明。
 34
 35     /// </summary>

 36
 37     [RunInstaller(true)]
 38
 39     public class Installer : System.Configuration.Install.Installer
 40
 41     {
 42
 43         /// <summary>
 44
 45         /// 必需的设计器变量。
 46
 47         /// </summary>

 48
 49         string conStr="packet size=4096;integrated security=SSPI;"+
 50
 51              "data source=\"(local)\";persist security info=False;"+
 52
 53              "initial catalog=master;connect timeout=300";
 54
 55         RijndaelCryptography rijndael = new RijndaelCryptography();
 56
 57         private System.ComponentModel.Container components = null;
 58
 59 
 60
 61         public Installer()
 62
 63         {
 64
 65              // 该调用是设计器所必需的。
 66
 67              InitializeComponent();
 68
 69 
 70
 71              // TODO: 在 InitializeComponent 调用后添加任何初始化
 72
 73         }

 74
 75 
 76
 77         /// <summary> 
 78
 79         /// 清理所有正在使用的资源。
 80
 81         /// </summary>

 82
 83         protected override void Dispose( bool disposing )
 84
 85         {
 86
 87              if( disposing )
 88
 89              {
 90
 91                   if(components != null)
 92
 93                   {
 94
 95                       components.Dispose();
 96
 97                   }

 98
 99              }

100
101              base.Dispose( disposing );
102
103         }

104
105 
106
107         组件设计器生成的代码
126
127 
128
129         重载自定义安装方法
260
261 
262
263         数据操作方法
400
401}

402
403

     单击“生成”菜单下“生成解决方案”,生成install.dll安装类文件。

3、将“主程序”项目的输出添加到部署项目中

     在“文件系统编辑器”中,选择“应用程序文件夹”,单击右键指向“添加”,添加“项目输出”。

     在“添加项目输出组”对话框中,选择“项目”下拉表框中选择你的主安装程序类,如上面的“install”。

     从列表框中选择“主输出”组,然后单击“确定”关闭。

4、创建自定义安装对话框

在解决方案资源管理器中选择安装项目“Setup1”项目,在“视图”菜单上指向“编辑器”,然后选择“用户界面”。

在用户界面编辑器具中,选择“安装”下的“启动”节点。在“操作”菜单上,选择“添加对话框”。

在“添加对话框”中选择“文本框(A)”对话框,然后单击“确定”关闭对话框。

在“操作”菜单上,选择“上移”,重复此步骤,移到“安装文件夹”上。

     在“文本框(A)”上单击“属性窗口”,设置如下图所示:

    

5、建自定义操作

在解决方案资源管理器中选择安装项目“Setup1”项目,在“视图”菜单上指向“编辑器”,然后选择“自定义操作”。

在“自定义操作编辑器”中选择“安装”节点。单击右键“添加自定义操作”,在选择项目中的项中选择“应用程序文件夹”,选择“主输出来自install(活动)”。

在“属性窗口”中选择“CustomActionData”属性并键入“/server=[EDITA1] /user=[EDITA2] /pwd=[EDITA3] /targetdir="[TARGETDIR]\"”。

 

:/targetdir="[TARGETDIR]\"是安装后的目标路径,为了在install类中获得安装后的路径,我们设置此参数。

单击“生成”菜单下的“生成解决方案”,编译安装项目。