我将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. 选择 Edit2Visible、Edit3Visible 和 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 安装程序”并单击“删除”,然后单击“确定”关闭对话框。
提示 若要从开发计算机上卸载,请在“项目”菜单上选择“卸载”。
测试通过。
posted on 2004-09-16 15:01 十一月四日风雨大作 阅读(3057) 评论(4) 编辑 收藏 举报