使用Visual Studio生成安装程序并设定连接字符串及其他自定义操作
2009-03-18 08:18:57 来源:WEB开发网9.建立功能实现类
图片看不清楚?请点击这里查看原图(大图)。
10.代码如下(请注意看代码注释):
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using System.Configuration;
using System.Xml;
using System.IO;
namespace SetSetup
{
/// <summary>
/// 继承安装类
/// www.szitr.com
/// </summary>
[RunInstaller(true)]
public partial class SetSqlConStr : Installer
{
public SetSqlConStr()
{
InitializeComponent();
}
/// <summary>
/// 重写基类的安装方法
/// </summary>
/// <param name="stateSaver"></param>
public override void Install(System.Collections.IDictionary stateSaver)
{
base.Install(stateSaver);
//得到用户输入的参数
//参数来自于后面 第 14 步 自定义操作的参数
//自定义操作参数的属性CustomActionData:/SqlServerIP=[SQLSERVER_NAME] /DataBase=[DATABASE_NAME] /UserName=[USERNAME] /Password=[PASSWORD] /TargetDir="[TARGETDIR]"
//中括号中的就是之前各文本框的Edit_Property值.最后一个TARGETDIR是安装路径,注意后面还有个反斜杆
string sqlServerIP = this.Context.Parameters["SqlServerIP"];
string database = this.Context.Parameters["DataBase"];
string userName = this.Context.Parameters["UserName"];
string password = this.Context.Parameters["Password"];
string targetdir = this.Context.Parameters["TargetDir"];
//这里写你要执行的代码
//组合连接字符串
string conString = String.Format("Data Source={0};Initial Catalog={1};User ID={2};Password={3};Persist Security Info=True", sqlServerIP, database, userName, password);
//更新连接字串设定值,WinUI.exe.config 要改成你设定档的名称
UpdateConConfig("ConnectionString", conString, targetdir + "WinUI.exe.config");
}
/// <summary>
/// 修改设定档连接字符串的值
/// </summary>
/// <param name="conName">连接字符串名称</param>
/// <param name="conString">连接字符串</param>
/// <param name="configfilePath">设定档路径及名称</param>
public static void UpdateConConfig(string conName, string conString,string configfilePath)
{
XmlDocument xmlDoc = new XmlDocument();
//读取设定档
xmlDoc.Load(configfilePath);
//取得连接字符串的节点
XmlNode xmlNode = xmlDoc.SelectSingleNode("configuration/connectionStrings/add[@name='" + conName + "']");
//修改连接字符串
xmlNode.Attributes["connectionString"].InnerText = conString;
//保存
xmlDoc.Save(configfilePath);
}
public override void Uninstall(System.Collections.IDictionary savedState)
{
base.Uninstall(savedState);
}
public override void Commit(System.Collections.IDictionary savedState)
{
base.Commit(savedState);
}
public override void Rollback(System.Collections.IDictionary savedState)
{
base.Rollback(savedState);
}
}
}
- ››使用linux中的quota教程
- ››使用jxl生成带动态折线图的excel
- ››使用mysql mysqldump进行数据库迁移
- ››Visual Basic 2008 数学函数
- ››使用jquery是新tab形式
- ››使用QUnit进行Javascript单元测试
- ››使用UITextFieldDelegate来隐藏键盘
- ››使用公式提取Excel中的日期后发现格式不对
- ››Visual Studio2005中Smart Device的问题
- ››使用SQL Azure 的BI 解决方案
- ››使用PLSQL Developer工具导出sql文件
- ››使用双缓冲技术实现Android画板应用
更多精彩
赞助商链接