WEB开发网
开发学院软件开发C语言 使用Visual Studio生成安装程序并设定连接字符串及... 阅读

使用Visual Studio生成安装程序并设定连接字符串及其他自定义操作

 2009-03-18 08:18:57 来源:WEB开发网   
核心提示: 9.建立功能实现类图片看不清楚?请点击这里查看原图(大图)。10.代码如下(请注意看代码注释):usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Configuration.

9.建立功能实现类

使用Visual Studio生成安装程序并设定连接字符串及其他自定义操作

使用Visual Studio生成安装程序并设定连接字符串及其他自定义操作

图片看不清楚?请点击这里查看原图(大图)。

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);
        }
    }
}

上一页  1 2 3 4 5  下一页

Tags:使用 Visual Studio

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接