安装部署中的数据库打包和快捷方式启动浏览器
1、 数据库脚本打包,如何修改Web.config文件中的数据联接
2、 数据库脚本中的方法和视图打包时要注意的问题
3、 如何使创建的快捷方式启动IE浏览器
对于如何打包,建立部署工程,MSDN和网上的一些资料说的很清楚,在这里不再赘述。针对上面两个问题提做一下总结:
1、 首先我们要生成数据库脚本,保存在文件中,如:DBScript.sql。注意:脚本中的“go”要全部去掉,视图和方法不要生成到一起,后面会讲到。
2、 要生成数据库就需要用户SqlServer的用户名密码,这时需要用户自己输入,我们要给用户定义一个输入界面,打开部署项目(比如:我这里叫SetUp)的用户界面,在安装-启动中添加一个用户界面
<?XML:NAMESPACE PREFIX = V />
我选择的是文本框(A),然后设置此文本框的属性,如下图:
现在只需要输入用户名和密码的两个文本框,注意:有两个属性STRUSER、STRPASS
3、 有了用户的用户名和密码,我们就可以根据他们生成数据库,这时,要建立一个用户自定义操作,在这个过程中,我们先要建立一个安装类,在项目中添加一个Install类库,添加一个安装程序类,这个类继承自System.Configuration. Install.Installer。
定义这个类的目的是加入我们需要的一些步骤,这里我们要加入数据库的建立和修改Web.Config中的数据联接,主要是重写Install方法。
第一步:获得用户输入的用户名和密码
private string strUser = "";
private string strPass = "";
public override void Install(IDictionary stateSaver)
{
this.strUser = this.Context.Parameters["strUser"];
if(this.Context.Parameters["strPass"] != null)
this.strPass = this.Context.Parameters["strPass"];
}
第二步:建立数据库及数据库表
将刚才生成的数据库脚本添加到Install项目下,修改其属性中的生成操作为“嵌入的资源”,编写相应的代码
protected void AddDBTable(string strDBName )
{
try
{
//Create the database.
ExecuteSql("master", "CREATE DATABASE " + strDBName);
// Create the tables.
ExecuteSql(strDBName, GetSql("DBScript.sql"));
ExecuteSql(strDBName, GetSql("Fuction.sql"));
ExecuteSql(strDBName, GetSql("View.sql"));
}
catch(Exception ex)
{
throw ex;
}
}
private void ExecuteSql(string DatabaseName , string Sql)
{
SqlConnection sqlConnection1 = new SqlConnection("user id=" + strUser + ";password="+strPass+";database=master;server=(local)") ;
SqlCommand Command = new SqlCommand(Sql, sqlConnection1);
Command.Connection.Open();
Command.Connection.ChangeDatabase(DatabaseName);
try
{
Command.ExecuteNonQuery();
}
catch(Exception ex)
{
throw ex;
}
finally
{
Command.Connection.Close();
}
}
private string GetSql(string strName)
{
try
{
Assembly Asm = Assembly.GetExecutingAssembly();
Stream strm = Asm.GetManifestResourceStream(Asm.GetName().Name + "." + strName);
StreamReader reader= new StreamReader(strm);
return reader.ReadToEnd();
}
catch(Exception ex)
{
throw ex;
}
}
注意:这里有两个执行脚本Fuction.sql,View.sql,对于每一个Fuction和View要单独使用一个脚本文件,因为每一个方法或视图的建立要求在查询语句的第一行,如果我们有两个方法的话,就要这样建立,如:要创建Function1和Function2。就要建立两个脚本Function1.sql和Function2.sql分别用来创建Function1和Function2。(我没有找到其他的方法解决这个问题,如果大家有更好的方法,欢迎给我指出)
第三步:修改Web.config中的数据联接,我们可以用处理Xml的方式处理Web.config。
protected void WriteWebConfig()
{
try
{
FileInfo file = new FileInfo(this.Context.Parameters["targetdir"] + @"\Web.config");
XmlDocument doc = new XmlDocument();
doc.Load(file.FullName);
XmlElement root = doc.DocumentElement;
XmlNodeList list = root.SelectNodes("/configuration/appSettings/add");
foreach(XmlNode node in list)
{
if(node.Attributes["key"].Value == "DBConn")
{
node.Attributes["value"].Value = "workstation id=.;packet size=4096;user id=" + strUser + ";pwd=" + strPass + ";data source=.;persist security info=False;initial catalog=DB";
doc.Save(file.FullName);
break;
}
}
}
catch(Exception ex)
{
throw ex;
}
}
这里要注意一个问题——对于部署后的Web.config的位置的确定,在这里用到了一个属性“targetdir”,这个属性会在一会的添加自定义操作中定义。
第四步:有了生成数据库及数据库表和对Xml数据联接的方法,我们只要在Install方法中调用就可以了。Install方法代码如下:
public override void Install(IDictionary stateSaver)
{
this.strUser = this.Context.Parameters["strUser"];
if(this.Context.Parameters["strPass"] != null)
this.strPass = this.Context.Parameters["strPass"];
this.AddDBTable("ExamTool");
this.WriteWebConfig();
}
4、 有了自定义操作类,我们就要把它添加到用户自定义操作中,打开部署项目中的用户自定义操作视图,在安装上添加自定义操作
选择Web应用程序文件夹,添加输出,选择刚才建立的Install类库,选择主输出
点击“确定”,设置添加的自定义操作的属性
注意:CustomActionData是指定要安装程序的自定义数据,这里面设置了三个参数,/strUser=[STRUSER] /strPass=[STRPASS] /targetdir=[TARGETDIR],其中targetdir是需要的部署的目标地址,这些参数以“/”表示开始,以“ ”(空格)隔开。
数据库部署部分基本完成,我们再来看看对于Web程序如何启动IE打开首页。
首先,我们要将IE的exe文件引入部署程序,在文件系统视图中添加Program Files文件夹,在此文件夹中添加文件
选择IE的文件,在系统盘下的\Program Files\Internet Explorer\iexplore.exe
创建的快捷方式中设置属性,如下图
Target设置成iexplore.exe,WorkingFolder设置为Program Files文件夹。
这样整个部署程序已基本完成,编译一下就可以了。编译的时候注意,生成的SetUp文件分为Debug版和Release版,Release版本相对较小,而且部署好的程序执行的效率相对较高,建议用这个版本部署。
转载于:https://www.cnblogs.com/wayne-ivan/archive/2006/10/18/532317.html
安装部署中的数据库打包和快捷方式启动浏览器相关推荐
- .net安装部署中添加卸载程序简单方法
在你得安装部署里添加msiexec.exe,这个文件在装了.net的机子上windows nt/system32/文件夹下,然后把这个文件创建一个快捷方式"卸载××系统",把 ...
- Hive架构及安装部署(远程数据库模式MySQL)
hive架构 hive部署 #hive安装 https://cwiki.apache.org/confluence/display/Hive/AdminManual+Metastore+Adminis ...
- presto的安装部署中出现的问题
1.安装Presto Presto安装完成后,采用命令行和可视化两种方式来对presto进行操作 2.使用命令行或者可视化web操作presto 在使用过程中,show table命令是可以正常使用的 ...
- kiwi syslog安装部署中的问题
近来在给客户做Solarwinds kiwi syslog的日志收集小项目中,看似一个简单的日志syslog工具,但是对于企业来说,却是一个很重要的角色,风险以及审计所要求的,对日志进行存档和集中管理 ...
- 阿里云服务器从购买,备案,安装部署中遇到的一些坑
我购买的是阿里云的学生机,比较实惠,一个月九块九,当然如果你自己没有学生机的资格,那就某宝买一个, 我花240块钱找人帮忙认证了个三年的,一次缴费一年以上还能打八五折,算下来非常划算. 系统是cent ...
- 安装过程中检测数据库是否已经存在
制作服务端程序的安装包,常常要创建数据库和其中的表.在创建之前,应该检测一下这个数据库是否已经存在了,如果已经存在,那么弹出消息框问用户是不是要覆盖现有的数据库数据.这里是一个使用NSIS制作安装包时 ...
- 「数据库」Linux服务安装部署SQL Server -外网安全远程连接【端口映射】
文章目录 1. 安装sql server 2. 局域网测试连接 3. 安装cpolar内网穿透 4. 将sqlserver映射到公网 5. 公网远程连接 6.固定连接公网地址 7.使用固定公网地址连接 ...
- weblogic12 linux部署,linux系统中安装部署weblogic12.1.3
问题: 此 Oracle 软件未经当前操作系统认证. 建议案: 确保在正确的平台上安装软件. 警告: 检查:CertifiedVersions 失败. 开始检查: CheckJDKVersion 预期 ...
- VS.NET安装部署深入研究
相信很多人都做过安装程序,目前最大功能最全的当属InstallShield,但是InstallShield的语法学习起来实在费劲, 相对而言vs.net自带的安装部署短小精悍,且使用C#语法,对于一般 ...
最新文章
- 二进制与格雷码之间的转换的Verilog实现(更多一点的讨论)
- POJ 1001 Exponentiation C++解题报告 JAVA解题报告
- vue-cli脚手架构建项目注意事项(填坑)
- windows远程访问树莓派方法(+树莓派启动方法)
- 字符串类型str方法
- Android 使用SWIG生成Jni代码转
- php 系统模版_原生 PHP 模板系统:Plates
- OpenShift 4 之配置Insecure Registry和Blocked Registry镜像源
- Windows学习总结(11)——Windows批处理命令编写代码及小程序简介
- vue 百度统计_2021暑期实习面经百度篇
- Android性能测试之fps获取
- 极域课堂忘记密码,解决方法,万能密码
- 一周搜索热点20170528
- android exoplayer 直播流,使用Exo-Media Player播放RTMP直播
- Git Commit Message校验踩坑指南
- python文件是什么的集合和抽象_python学习笔记(三):文件操作和集合
- easyExcel设置单个单元格(颜色)样式
- Python猜数字小游戏
- 做人要心正,待人要心诚
- xwiki开发者指南-编写一个XWiki组件