我将msdn上一篇关于数据库打包的文章由vb改为cs拉,好久没发言了,希望这个东西对大家有用!

安装期间使用自定义操作创建数据库

以下演练演示在安装期间如何使用自定义操作和 CustomActionData 属性创建数据库和数据库表。

注意   此演练要求应用程序部署到的计算机上有 SQL Server

创建安装程序类

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

2.       新建项目对话框中,选择项目类型窗格中的“Visual C# 项目,然后选择模板窗格中的类库。在名称框中键入 DBCustomAction

3.       单击打开关闭对话框。

4.       项目菜单中选择添加新项

5.       添加新项对话框中选择安装程序类。在名称框中键入 DBCustomAction

6.       单击确定关闭对话框。

创建数据连接对象

1.       服务器资源管理器中,选择数据连接。右击并选择添加连接

2.       数据链接属性对话框中,进行下面的操作:

a.       键入服务器名。

b.      选择使用 Windows NT 集成安全设置

c.      数据库框中,键入 master

d.      单击确定关闭对话框。

3.       将新连接拖到“DBCustomAction.cs”设计器中以创建“sqlConnection1 对象

创建包含 SQL 语句的文本文件以创建数据库

1.       解决方案资源管理器中,选择“DBCustomAction”项目。从项目菜单中选择添加新项

2.       添加新项对话框中,选择文本文件。在名称框中,键入 sql.txt(必须是小写)。

3.       单击确定关闭对话框。

4.       将以下内容添加到 sql.txt 文件中:

5.            CREATE TABLE [dbo].[Employees] (
6.            [Name] [char] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
7.            [Rsvp] [int] NULL ,
8.            [Requests] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL 
9.            ) ON [PRIMARY];
10.         
11.        ALTER TABLE [dbo].[Employees] WITH NOCHECK ADD 
12.        CONSTRAINT [PK_Employees] PRIMARY KEY CLUSTERED 
13.        (
14.        [Name]
) ON [PRIMARY];

15.   解决方案资源管理器中,选择“sql.txt”。在属性窗口中,将生成操作属性设置为嵌入的资源

将代码添加到安装程序类中以阅读文本文件

1.       解决方案资源管理器中,选择“DBCustomAction.cs”。在视图菜单上,选择代码

2.       在模块的顶部添加以下 using  语句:

using System.IO;

using System.Reflection;

3.将以下代码添加到类中:

        private  string GetSql(string Name)

        {

            try

            {

                Assembly Asm = Assembly.GetExecutingAssembly();

                Stream strm = Asm.GetManifestResourceStream(Asm.GetName().Name + "."+Name);

                StreamReader reader = new StreamReader(strm);

                return reader.ReadToEnd();

            }

            catch (Exception ex)

            {

                Console.Write("In GetSql:"+ex.Message);

                throw ex;

            }

        }

 

        private void ExecuteSql(string DataBaseName,string Sql)

        {

            System.Data.SqlClient.SqlCommand Command = new System.Data.SqlClient.SqlCommand(Sql,sqlConnection1);

 

            Command.Connection.Open();

            Command.Connection.ChangeDatabase(DataBaseName);

            try

            {

                Command.ExecuteNonQuery();

            }

            finally

            {

                Command.Connection.Close();

            }

        }

 

 

        protected void AddDBTable(string strDBName)

        {

            try

            {

                ExecuteSql("master","CREATE DATABASE "+ strDBName);

                ExecuteSql(strDBName,GetSql("sql.txt"));

            }

            catch(Exception ex)

            {

                Console.Write("In exception handler :"+ex.Message);

            }

        }

 

        public override void Install(System.Collections.IDictionary stateSaver)

        {

            base.Install(stateSaver);

            AddDBTable(this.Context.Parameters["dbname"]);

        }

 

4.生成菜单上,选择生成 DBCustomAction”

创建部署项目

1.       文件菜单上,选择添加项目”->“新建项目

2.       添加项目对话框中,选择项目类型窗格中的安装和部署项目,然后选择模板窗格中的安装项目。在名称框中,键入 DBCustomAction Installer

3.       单击确定关闭对话框。

4.       属性窗口中,选择 ProductName 属性并键入 DB Installer

5.       在文件系统编辑器中,选择应用程序文件夹。在操作菜单上,选择添加”->“项目输出

6.       添加项目输出组对话框中,为“DBCustomAction”项目选择主输出。单击确定关闭对话框。

创建自定义安装对话框

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

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

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

4.       操作菜单上,选择上移。重复此步骤,直到文本框 (A)”对话框位于安装文件夹节点之上。

5.       属性窗口中,选择 BannerText 属性并键入 Specify Database Name

6.       选择 BodyText 属性并键入 This dialog allows you to specify the name of the database to be created on the database server

7.       选择 Edit1Label 属性并键入 Name of DB:

8.       选择 Edit1Property 属性并键入 CUSTOMTEXTA1

9.       选择 Edit2VisibleEdit3Visible Edit4Visible 属性,并将它们设置为 False

创建自定义操作

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

2.       在自定义操作编辑器中选择安装节点。在操作菜单上,选择添加自定义操作

3.       选择项目中的项对话框中,双击应用程序文件夹

4.       选择主输出来自 DBCustomAction(活动)项,然后单击确定关闭对话框。

5.       属性窗口中,选择 CustomActionData 属性并键入 /dbname=[CUSTOMTEXTA1]

6.       生成菜单上选择生成 DBCustomActionInstaller”

在开发计算机上安装

  • 在解决方案资源管理器中选择“DBCustomAction Installer”项目。在项目菜单上选择安装

这将在开发计算机上运行安装程序。

注意   必须在计算机上具有安装权限才能运行安装程序。

部署到其他计算机

1.       Windows 资源管理器中,定位到项目目录并查找所生成的安装程序。默认路径将是 \documents and settings\yourloginname\DBCustomAction Installer\project configuration\DBCustomAction Installer.msi。默认项目配置调试

2.       DBCustomAction Installer.msi 文件和该目录下的其他所有文件和子目录复制到另一台计算机上。

注意   若要在未连网的计算机上安装,请将文件复制到 CD-ROM 等传统媒体中。

在目标计算机上双击 Setup.exe 文件来运行安装程序。

注意   必须在计算机上具有安装权限才能运行安装程序。

卸载应用程序

1.       Windows“控制面板中,双击添加/删除程序

2.       添加/删除程序对话框中选择“DBCustomAction 安装程序并单击删除,然后单击确定关闭对话框。

提示   若要从开发计算机上卸载,请在项目菜单上选择卸载

 
我的机器win2000 server +.net1.1+mssql2000
测试通过。

posted on 2004-09-16 15:01  十一月四日风雨大作  阅读(...)  评论(...编辑  收藏

导航