在应用程序启动中保存配置

时间:2014-02-21 09:03:28

标签: c# configuration-files appsettings

用户的输入保存在应用程序的配置文件中,因为每次重启时软件都需要使用此输入:

  public void setAppSetting(string key, string value)
    {
        //Laden der AppSettings
        Configuration config = ConfigurationManager.
                                OpenExeConfiguration(
                                System.Reflection.Assembly.
                                GetExecutingAssembly().Location);

        if (config.AppSettings.Settings[key] != null)
        {
            config.AppSettings.Settings.Remove(key);
        }

        config.AppSettings.Settings.Add(key, value);
        config.Save(ConfigurationSaveMode.Modified);
    }

     public string getAppSetting(string key)
    {

        Configuration config = ConfigurationManager.
                                OpenExeConfiguration(
                                System.Reflection.Assembly.
                                GetExecutingAssembly().Location);

        return config.AppSettings.Settings[key].Value;
    }

加载应用设置:

private void Start_Closed(object sender, EventArgs e)
    {

        setAppSetting("benutzerEingabe", textBoxPath.Text);
        setAppSetting("benutzerEingabe", userConfigurePath);
    }

因此,当用户解压缩存在exe文件的zip文件时,存在没有内容的内容文件。所以我想要它。

 <?xml version="1.0" encoding="utf-8" ?>
 <configuration>
 </configuration>

第一次使用应用程序后,配置中包含密钥:

  <?xml version="1.0" encoding="utf-8" ?>
  <configuration>
 <appSettings>
    <add key="benutzerEingabe" />
 </appSettings>
 </configuration>

对我来说,问题是当用户将exe复制到其他地方并且第一次启动此应用程序时会有新的配置文件。这就是问题所在。是否有可能在exe文件中实现配置文件,以便此文件不会自行创建。或者还有其他解决方案吗?

4 个答案:

答案 0 :(得分:1)

您需要的是安装程序exe或msi package。您可以通过在visual studio中创建msi项目来完成此操作。使用此方法而不是提供exe文件,您将为我提供MSI文件。因此,在安装msi时,您可以以自动放置配置文件的方式捆绑您的exe。您还可以使此安装程序在用户计算机上创建文件夹等。非常有用。

http://www.codeproject.com/Articles/568476/Creating-an-MSI-Package-for-Csharp-Windows-Applica

http://support.microsoft.com/kb/307353

http://msdn.microsoft.com/en-us/library/cc766795.aspx

答案 1 :(得分:1)

最好在公共位置创建文件,每次检查公共位置是否存在文件,如果存在则读/写值,否则创建文件

您可以使用 XML 文件或 ini 文件来保存数据。所以,如果你改变exe位置,它不会影响你的执行。

你可以使用

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)

作为您的常用文件夹。

答案 2 :(得分:0)

您可以使用ConfigurationManager.OpenExeConfiguration

手动加载配置文件

here有一个很好的例子:它保留了移动设置。

答案 3 :(得分:0)

你可以直接使用c#中的设置来制作这些东西。 http://msdn.microsoft.com/en-us/library/aa730869(v=vs.80).aspx