2011-05-11 91 views
2

此问题与Winform应用程序部署和配置有关。安装Winform应用程序配置

我是.NET新手,我正在开发我的第一个Winforms应用程序。每当我部署应用程序,我需要设置用户将连接的服务器的值。

为此,我必须进入程序文件并使用记事本手动更改应用程序配置文件。

不仅我听说这不是一个好习惯,它也是一个乏味的练习。想象一下,有六个用户会在每台机器上做同样的事情。

我很困惑该怎么做。与exe文件位于同一文件夹中的应用程序配置文件是我可以更改连接字符串的文件(正如我所理解的那样)。

任何人都可以帮助我解决以下问题。

  1. 如何在安装之后更新应用程序配置文件,而无需在记事本中打开它?我主要关心的是更新连接字符串。

  2. 我听说在这种情况下使用注册表是可能的。我害怕使用注册表!这是一个选项吗?

如果问题太天真,请原谅我的无知。我是新来的.NET和寻找答案

感谢 罗米

回答

1

嗨罗米这里是一段代码,可以帮助你在读/右应用配置

写在

 System.Configuration.Configuration config = 
    ConfigurationManager.OpenExeConfiguration 
       (ConfigurationUserLevel.None); 

    // Add an Application Setting. 

    config.AppSettings.Settings.Add("ModificationDate", 
        DateTime.Now.ToLongTimeString() + " "); 

    // Save the changes in App.config file. 

    config.Save(ConfigurationSaveMode.Modified); 

    // Force a reload of a changed section. 

    ConfigurationManager.RefreshSection("appSettings"); 

阅读

foreach(string key in ConfigurationManager.AppSettings) 
    { 
     string value = ConfigurationManager.AppSettings[key]; 
     Console.WriteLine("Key: {0}, Value: {1}", key, value); 
    } 

我的建议:如果您保存了几个不是连接字符串的设置,请使用上面的代码。只需创建一个简单的表单,创建一个字典填充它并使用网格控件显示它。

如果你只需要读/写连接字符串使用下面的代码

阅读

string cnx =  ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; 

 ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString=" your conenction string here"; 

config.Save(ConfigurationSaveMode.Modified);

// Force a reload of a changed section. 

    ConfigurationManager.RefreshSection("ConnectionString"); 

您仍然可以使用注册表来保存这些设置,但我相信上面的代码将解决您的问题。

+0

感谢您的回复。现在,我可以创建一个表单,作为主应用程序的一部分,或者作为一个表单部署后接受服务器名称,连接到相同的连接成功,然后使用代码将其保存到配置文件中提供了。那会是这个想法吗?对? – Romi24 2011-05-12 05:56:41

+0

当然,为什么不呢,你可以用代码做很多事情,它真的很有用。你甚至可以保存多个连接字符串,只需用下面一行中的引号替换名称:ConfigurationManager.ConnectionStrings [“替换此”]。 – 2011-05-15 17:36:54