图文描述Vs2005制作WEB应用程序安装包的方法[E8.Net正式用户可以找我们获取全部代码参考]
2008-03-22 17:19
726 查看
WEB应用程序的发布很多时候是需要给最终用户自己进行安装的. 因此我们需要开发终端用户方便使用的安装包.
。NET工具安装工程向导很快速的就可以实现一个WEB应用程序的安装制作,如果提供给终端用户使用,安装包主要还要做的事情大概有:
1 、配置web.config
2、 安装数据库
3、 创建快捷方式
4、 创建开始程序菜单
。。。。。。。。
创建一个安装工程,并设置好各种属性后。我们可以开始安装包的一些扩展功能。
首先我们需要编写一个E8Installer 类 继承 Installer ,通过重载 Installer类的 install uninstall ...方法来实现扩展
public override void Install(System.Collections.IDictionary stateSaver)
public override void Uninstall(System.Collections.IDictionary stateSaver)
sDBServer = Context.Parameters["dbserver"].ToString();
sDBName = Context.Parameters["dbname"];
strDBSAPsw = Context.Parameters["dbsapsw"];
sCompanyName = Context.Parameters["companyname"];
// sDBUser = "epuser";
sDBPsw = Context.Parameters["password"];
string strWorkTimeType = Context.Parameters["WorkTimeType"].ToString();
string strOnDutyTime1 = Context.Parameters["OnDutyTime1"];
string strOffDutyTime1 = Context.Parameters["OffDutyTime1"];
string strOnDutyTime2 = Context.Parameters["OnDutyTime2"];
string strOffDutyTime2 = Context.Parameters["OffDutyTime2"];
string strTempCataLog = Context.Parameters["filepath"] + @"\Upload\";
string strFileCataLog = Context.Parameters["filepath"] + @"\Download\";
string strGoLimit = Context.Parameters["golimit"];
string strOverLimit = Context.Parameters["overlimit"];
strDBOption = Context.Parameters["dboption"];
strCheckMsg = CheckTime(strOnDutyTime1, strOffDutyTime1, strOnDutyTime2, strOffDutyTime2);
if (strCheckMsg != "")
strCheckMsg = CheckPathValid(strTempCataLog, strFileCataLog);
if (strCheckMsg != "")
strCheckMsg = CheckNumbericSet(strGoLimit, strOverLimit);
if (strCheckMsg != "")
if (strWorkTimeType == "1")
strWorkTimeType = "50";
if (strWorkTimeType == "2")
strWorkTimeType = "55";
if (strWorkTimeType == "3")
strWorkTimeType = "60";
string strValue = "server=" + sDBServer.Trim() + ";user id=" + sDBUser.Trim() +
";password=" + sDBPsw.Trim() + ";database=" + sDBName.Trim() + ";max pool size=100";
System.IO.FileInfo fileInfo = new System.IO.FileInfo(strFolderName + "\\web.config");
if (!fileInfo.Exists)
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
xmlDoc.Load(fileInfo.FullName);
bool blnFindit = false;
foreach (XmlNode xmlNode in xmlDoc["configuration"]["connectionStrings"].ChildNodes)
foreach (XmlNode xmlNode in xmlDoc["configuration"]["appSettings"].ChildNodes)
if (blnFindit == true)
}
catch
finally
//创建数据库
sb = this.GetSqlFile("createdatabase.txt");
sb.Replace("@dbname@", sDBName);
sb.Replace("@password@", sDBPsw);
sb.Replace("@dbuser@", sDBUser);
ExecuteSql(connStr, "master", sb.ToString());
//创建数据库用户
sb = this.GetSqlFile("createdbuser.txt");
sb.Replace("@dbname@", sDBName);
sb.Replace("@password@", sDBPsw);
sb.Replace("@dbuser@", sDBUser);
ExecuteSql(connStr, sDBName.Trim(), sb.ToString());
//空数据库
sb = this.GetSqlFile("tables.sql");
ExecuteSql(connStr, sDBName.Trim(), sb.ToString());
//空数据库所有函数
sb = this.GetSqlFile("funGetFullDept.txt");
ExecuteSql(connStr, sDBName.Trim(), sb.ToString());
sb = this.GetSqlFile("funGetFullCatalog.txt");
ExecuteSql(connStr, sDBName.Trim(), sb.ToString());
三、创建快捷方式
由于是WEB 安装,安装过程中可以选择设置 WEB站点和虚拟路径名称,因此还不能直接以现有文件的方式生成快捷方式。 可以通过代码生成文件并复制到相关目录下的方式来实现。代码参考:
System.IO.StreamWriter writer = System.IO.File.CreateText(sSpecFolder + "\\E8.HelpDesk服务管理系统.url");
writer.WriteLine("[internetshortcut]");
writer.WriteLine("URL=http://localhost/" + strVirtualD);
writer.Close();
既然是自己代码生成,还可以写入指定图标。。。。节点
不过需要注意的是,安装程序生成的文件,需要 重载 uninstaller 方法 中处理删除动作
一个完整的安装包还需要考虑更多因素,比如 安装环境存在多个 framework版本情况的处理等。限于篇幅不多介绍,希望能给大家的安装包开发起到抛砖引玉的作用
E8.Net工作流平台为.Net企业应用开发提供了一个起点。E8.Net工作流提升企业战略执行力,欢迎访问: http://***/productFlow.htm
。NET工具安装工程向导很快速的就可以实现一个WEB应用程序的安装制作,如果提供给终端用户使用,安装包主要还要做的事情大概有:
1 、配置web.config
2、 安装数据库
3、 创建快捷方式
4、 创建开始程序菜单
。。。。。。。。
创建一个安装工程,并设置好各种属性后。我们可以开始安装包的一些扩展功能。
首先我们需要编写一个E8Installer 类 继承 Installer ,通过重载 Installer类的 install uninstall ...方法来实现扩展
public override void Install(System.Collections.IDictionary stateSaver)
public override void Uninstall(System.Collections.IDictionary stateSaver)
sDBServer = Context.Parameters["dbserver"].ToString();
sDBName = Context.Parameters["dbname"];
strDBSAPsw = Context.Parameters["dbsapsw"];
sCompanyName = Context.Parameters["companyname"];
// sDBUser = "epuser";
sDBPsw = Context.Parameters["password"];
string strWorkTimeType = Context.Parameters["WorkTimeType"].ToString();
string strOnDutyTime1 = Context.Parameters["OnDutyTime1"];
string strOffDutyTime1 = Context.Parameters["OffDutyTime1"];
string strOnDutyTime2 = Context.Parameters["OnDutyTime2"];
string strOffDutyTime2 = Context.Parameters["OffDutyTime2"];
string strTempCataLog = Context.Parameters["filepath"] + @"\Upload\";
string strFileCataLog = Context.Parameters["filepath"] + @"\Download\";
string strGoLimit = Context.Parameters["golimit"];
string strOverLimit = Context.Parameters["overlimit"];
strDBOption = Context.Parameters["dboption"];
strCheckMsg = CheckTime(strOnDutyTime1, strOffDutyTime1, strOnDutyTime2, strOffDutyTime2);
if (strCheckMsg != "")
strCheckMsg = CheckPathValid(strTempCataLog, strFileCataLog);
if (strCheckMsg != "")
strCheckMsg = CheckNumbericSet(strGoLimit, strOverLimit);
if (strCheckMsg != "")
if (strWorkTimeType == "1")
strWorkTimeType = "50";
if (strWorkTimeType == "2")
strWorkTimeType = "55";
if (strWorkTimeType == "3")
strWorkTimeType = "60";
string strValue = "server=" + sDBServer.Trim() + ";user id=" + sDBUser.Trim() +
";password=" + sDBPsw.Trim() + ";database=" + sDBName.Trim() + ";max pool size=100";
System.IO.FileInfo fileInfo = new System.IO.FileInfo(strFolderName + "\\web.config");
if (!fileInfo.Exists)
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
xmlDoc.Load(fileInfo.FullName);
bool blnFindit = false;
foreach (XmlNode xmlNode in xmlDoc["configuration"]["connectionStrings"].ChildNodes)
foreach (XmlNode xmlNode in xmlDoc["configuration"]["appSettings"].ChildNodes)
if (blnFindit == true)
}
catch
finally
//创建数据库
sb = this.GetSqlFile("createdatabase.txt");
sb.Replace("@dbname@", sDBName);
sb.Replace("@password@", sDBPsw);
sb.Replace("@dbuser@", sDBUser);
ExecuteSql(connStr, "master", sb.ToString());
//创建数据库用户
sb = this.GetSqlFile("createdbuser.txt");
sb.Replace("@dbname@", sDBName);
sb.Replace("@password@", sDBPsw);
sb.Replace("@dbuser@", sDBUser);
ExecuteSql(connStr, sDBName.Trim(), sb.ToString());
//空数据库
sb = this.GetSqlFile("tables.sql");
ExecuteSql(connStr, sDBName.Trim(), sb.ToString());
//空数据库所有函数
sb = this.GetSqlFile("funGetFullDept.txt");
ExecuteSql(connStr, sDBName.Trim(), sb.ToString());
sb = this.GetSqlFile("funGetFullCatalog.txt");
ExecuteSql(connStr, sDBName.Trim(), sb.ToString());
三、创建快捷方式
由于是WEB 安装,安装过程中可以选择设置 WEB站点和虚拟路径名称,因此还不能直接以现有文件的方式生成快捷方式。 可以通过代码生成文件并复制到相关目录下的方式来实现。代码参考:
System.IO.StreamWriter writer = System.IO.File.CreateText(sSpecFolder + "\\E8.HelpDesk服务管理系统.url");
writer.WriteLine("[internetshortcut]");
writer.WriteLine("URL=http://localhost/" + strVirtualD);
writer.Close();
既然是自己代码生成,还可以写入指定图标。。。。节点
不过需要注意的是,安装程序生成的文件,需要 重载 uninstaller 方法 中处理删除动作
一个完整的安装包还需要考虑更多因素,比如 安装环境存在多个 framework版本情况的处理等。限于篇幅不多介绍,希望能给大家的安装包开发起到抛砖引玉的作用
E8.Net工作流平台为.Net企业应用开发提供了一个起点。E8.Net工作流提升企业战略执行力,欢迎访问: http://***/productFlow.htm
相关文章推荐
- 图文描述Vs2005制作WEB应用程序安装包的方法[E8.Net正式用户可以找我们获取全部代码参考]
- 图文描述Vs2005制作WEB应用程序安装包的方法[E8.Net正式用户可以找我们获取全部代码参考]
- 图文描述Vs2005制作WEB应用程序安装包的方法[E8.Net正式用户可以找我们获取全部代码参考]
- 通过调用类中的各种方法我们可以获取不同的时间
- struts2 用get方法 获取信息 用下面的乱码,用下面代码可以转正常。
- jsp中上传大文件(200M已测试),存到数据库,易发生连接超时的ie找不到网页的错误,其解决方法。略写代码,参考(.net修改代码应该可以,改天修改)
- SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 'WIN-8IVSNAQS8T7\Administrator' 的信息,错误代码 0x534。 转+自我方法
- datalist 的用法。也是增删改查,但是比较智能。用数据绑定的方式,可以有不同的显示方法,下面是对一个表的增删改查的参考代码
- 获取发布信息时,用什么方法可以把HTML部份代码替换掉。比如:空格,加粗,大小等。
- 制作U盘启动来安装Linux系统的具体方法(图文)
- delphi2007控件安装多版本可以用多用户方法来解决
- 在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip)。一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致。但是在代码中,如何处理呢?很多控件的方法中都只提供了
- Android APK反编译方法(可以获取APK xml和android Manifest,java代码等内容)
- 阅读layim代码小记,实现可以更改用户签名的方法
- Android APK反编译方法(可以获取APK xml和android Manifest,java代码等内容)
- 关于VS2005安装项目制作的三个参考文章链接
- 关于iOS9之后 获取用户是否安装sim卡 的方法
- INFO:InstallShield制作的多语言安装包中如何获取用户选择的语言
- 如何制作U盘系统盘以及使用U盘安装操作系统的方法(图文详解)
- ListView异步加载图片是非常实用的方法,凡是是要通过网络获取图片资源一般使用这种方法比较好,用户体验好,下面就说实现方法,先贴上主方法的代码: