65.9K
CodeProject 正在变化。 阅读更多。
Home

安装过程中添加连接字符串

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.73/5 (14投票s)

2012年8月24日

CPOL

3分钟阅读

viewsIcon

2089281

创建安装文件并添加连接字符串自定义控件。

目录

引言

在本文中,我们将了解如何为 Windows 应用程序创建安装 (MSI) 文件。除了创建安装程序之外,我们还在 MSI 文件中添加了一个自定义控件,该控件有助于在安装过程中构建连接字符串。连接字符串详细信息(实例名称、数据库名称)将在安装过程中从用户处获取。为了向安装程序添加自定义控件,我们需要设计一个页面,以便获取构建连接字符串所需的所有输入。

它的用途

  • 这个自定义控件使最终用户能够在安装过程中创建自己的连接字符串。
  • 它消除了在 App.config 文件中硬编码连接字符串的情况,这使应用程序更用户友好。

方法论

我们可以将其分为两部分

  • 创建安装文件
  • 向安装程序添加自定义控件

创建安装文件

  • 步骤 1:打开或创建一个应用程序,右键单击添加一个新项目 > 解决方案资源管理器 > 添加 > 新项目 > 其他项目类型 > 安装和部署 > Visual Studio Installer > 安装项目(Windows 应用程序)对于 Web 应用程序(Web 安装项目)。
  • 步骤 2:将 Web.configApp.config 和安装程序类(右键单击 >项目>添加新项 >安装程序类)添加到现有项目。
  • 步骤 3:转到安装项目的属性并更改作者姓名、制造商、产品名称、标题等。
  • 步骤 4:右键单击安装项目 > 添加 > 项目输出 > 选择主要输出和内容文件。
  • 步骤 5:选择应用程序的引用 DLL,右键单击 > 属性> 将“复制到本地”设置为 True。
  • //Installer.cs 
    string dataSource = "Data Source =" + Context.Parameters["DataSource"];
    string initialcatalog = "Initial Catalog=" + Context.Parameters["InitialCatalog"];
    dataSource = dataSource + ";" + initialcatalog;
    dataSource = dataSource + ";Integrated Security=SSPI;";
    MessageBox.Show("instance=" + dataSource);
    ExeConfigurationFileMap map = new ExeConfigurationFileMap();
    MessageBox.Show(Assembly.GetExecutingAssembly().Location + ".config");
    //Getting the path location 
    string configFile = string.Concat(Assembly.GetExecutingAssembly().Location, ".config");
    map.ExeConfigFilename = configFile;
    System.Configuration.Configuration config = System.Configuration.ConfigurationManager.
    OpenMappedExeConfiguration(map, System.Configuration.ConfigurationUserLevel.None);
    string connectionsection = config.ConnectionStrings.ConnectionStrings
    ["SqlConnectionString"].ConnectionString;
    
    ConnectionStringSettings connectionstring = null;
    if (connectionsection != null)
    {
        config.ConnectionStrings.ConnectionStrings.Remove("SqlConnectionString");
        MessageBox.Show("removing existing Connection String");
    }
    
    connectionstring = new ConnectionStringSettings("SqlConnectionString", dataSource);
    config.ConnectionStrings.ConnectionStrings.Add(connectionstring);
    
    config.Save(ConfigurationSaveMode.Modified, true);
    ConfigurationManager.RefreshSection("connectionStrings");

添加自定义控件

设计自定义控件

我们需要根据我们的要求设计自定义控件。在这种情况下,我们需要文本框,我们将具有内置文本框,我们需要将这些文本框添加到我们的自定义安装向导中。 我们可以制作四个文本框,可以使用“编辑可见”属性启用和禁用它们。 我们还可以根据安装过程调整我们设计的控件的显示。

自定义控件的 UI 设计

安装过程的对齐顺序

  • 步骤 1:右键单击安装项目 > 视图 >用户界面。它将显示安装过程步骤。 右键单击“开始”节点>添加对话框>选择文本框>相应地更改属性。 在属性中它显示了四个文本框。 如果我们将属性(编辑可见)设置为 true,它将可见。
  • 步骤 2:右键单击安装项目 > 视图 >自定义操作> 单击“安装”节点>添加自定义操作>单击到应用程序文件夹>选择主输出文件。 对提交、回滚、卸载节点执行相同的操作。
  • 步骤 3:转到“安装”节点的主要输出文件属性,自定义操作数据,传递连接字符串的输入参数,如下所示。
  • /DataSource="[EDITA1]" /InitialCatalog="[EDITA2]" /UserID="[EDITA3]" /Password="[EDITA4]"

    为此,数据应作为 <Key> 和 <value> 传递。文本框标签名称应与 key 匹配,属性名称应与 value 匹配。 我们应该仅向安装的主输出文件提供自定义操作数据。

  • 步骤 4:一旦我们完成构建,安装文件将被创建,并且安装文件在调试文件夹中创建。 安装它并检查安装位置中的配置文件 (C:/编程文件/路径名 .....),您将获得带有用户提供详细信息的新连接字符串。

下一篇文章为 Web 应用程序创建自定义安装程序

需要记住的点

  • 自定义操作数据会将所有输入参数作为单个字符串。
  • 我们只需要在“安装”节点的主要输出文件(自定义操作数据)中提供输入。
© . All rights reserved.