博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.Net Web项目安装包制作(三)补充说明
阅读量:5312 次
发布时间:2019-06-14

本文共 2329 字,大约阅读时间需要 7 分钟。

这一节只是补充说明一下。

一、 安装标题

按照前面的做法中,在安装过程中,如下图

 

安装的标题是HxjWebSteup,这样的标题和产品名称显然是无法再实际项目中使用的。

这里我们需要通过设置安装项目的属性来设置一下就可以,选中HxjWebSetup项目按F4出来属性窗口,这个和右击项目属性是不一样的。如下图:

 

我们修改一下ProductName这个属性,变成Steven hu ProductName

我们再来看看安装过程,如下图:

 

我们想要的效果已经达到了,安装标题和产品名称都已经修改。

 

二、附加数据库

在第二节中有提到可以使用直接附加数据库文件的形式来完成我们项目数据库的创建安装。

其实我们平时经常使用企业管理器来附加数据库,当然我们也可以执行数据库的系统存储过程来完成该项操作。

sp_attach_db 存储过称,我们首先来看一下帮助文档中解释;

sp_attach_db

将数据库附加到服务器。

语法

sp_attach_db [ @dbname= ] 'dbname' 

 

 

, [ @filename1 = ] 'filename_n' [ ,...16 ]

 

 

 

参数

[@dbname =] 'dbname'

要附加到服务器的数据库的名称。该名称必须是唯一的。dbname 的数据类型为 sysname,默认值为 NULL。

[@filename1 =] 'filename_n'

数据库文件的物理名称,包括路径。filename_n 的数据类型为 nvarchar(260),默认值为 NULL。最多可以指定 16 个文件名。参数名称以 @filename1 开始,递增到 @filename16。文件名列表至少必须包括主文件,主文件包含指向数据库中其它文件的系统表。该列表还必须包括数据库分离后所有被移动的文件。

 

下面我们来具体实现一下,

首先将数据库文件放到web项目app_data文件夹下,如下图:

 

接下来,修改安装类中的代码,如下:

/// /// 安装/// /// public override void Install(IDictionary stateSaver){    base.Install(stateSaver);    string connectionString = GetConnectionString(null);    try    {        using (SqlConnection connection = new SqlConnection(connectionString))        {            connection.Open();            string sql = "sp_attach_db 'HxjDB','" + Context.Parameters["targetdir"].ToString() + "App_Data/HxjDB_Data.MDF','"                + Context.Parameters["targetdir"].ToString() + "App_Data/HxjDB_Log.LDF'";                                            ExecuteSQL(connection, sql);            //ExecuteSQL(connection, GetResource("createdatabase.sql"));        }    }    catch (Exception ex)    {        MessageBox.Show("数据库安装失败!\n数据库配置有误,请正确配置信息!\n" + ex.Message, "出错啦!");        this.Rollback(stateSaver);    }}

其他没有改变,然后就重新打包。

然后安装,在web项目下的数据库就会被附加上去。

 

三、卸载

在示例中的做法在安装的时候是没有问题的,在卸载或者修复的时候,

/// /// 获取数据库登录连接字符串/// /// 数据库名称/// 
private string GetConnectionString(string databasename){ return "server=" + Context.Parameters["server"].ToString() + ";database=" + (string.IsNullOrEmpty(databasename) ? "master" : databasename) + ";User ID=" + Context.Parameters["user"].ToString() + ";Password=" + Context.Parameters["pwd"].ToString();}

这里是无法获取正确的链接字符串,Context.Parameters["server"] 这些都已经不存在了,所以要想在卸载和修复的时候都可以用,则需要在安装的时候保存连接字符串。

保存的位置和方式可根据自己的喜好存储,毕竟连接字符串不是机密,自己方便自己就好了。

要想卸载的时候执行UnInstall方法,需要在安装项目中自定义操作中的卸载添加HxjDBInstall。如下图:

 

 

本节完。

转载于:https://www.cnblogs.com/amylis_chen/archive/2011/12/10/2283501.html

你可能感兴趣的文章
git安装和简单配置
查看>>
面向对象:反射,双下方法
查看>>
鼠标悬停提示文本消息最简单的做法
查看>>
Java面向对象重要关键字
查看>>
课后作业-阅读任务-阅读提问-2
查看>>
面向对象设计中private,public,protected的访问控制原则及静态代码块的初始化顺序...
查看>>
fat32转ntfs ,Win7系统提示对于目标文件系统文件过大解决教程
查看>>
Awesome Adb——一份超全超详细的 ADB 用法大全
查看>>
shell cat 合并文件,合并数据库sql文件
查看>>
Android 将drawable下的图片转换成bitmap、Drawable
查看>>
介绍Win7 win8 上Java环境的配置
查看>>
移动、联通和电信,哪家的宽带好,看完你就知道该怎么选了!
查看>>
Linux设置环境变量的方法
查看>>
Atitit.进程管理常用api
查看>>
构建自己的项目管理方案
查看>>
利用pca分析fmri的生理噪声
查看>>
div水平居中且垂直居中
查看>>
怎么在windows7系统我的电脑中添加快捷方式
查看>>
epoll使用具体解释(精髓)
查看>>
AndroidArchitecture
查看>>