【发布时间】:2014-03-22 16:36:34
【问题描述】:
用户的输入保存在应用程序的配置文件中,因为每次重启软件都需要使用这个输入:
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 文件中实现配置文件,以便该文件不会自行创建。还是有其他解决办法?
【问题讨论】:
-
您可以随时检查应用程序何时启动,是否有 app.conf 文件,如果没有,则继续
-
您可以使用注册表。或者它可以保存在所有用户的固定位置。
-
您可以将其作为嵌入式资源,然后将其写入磁盘。如果找不到,我相信初始配置文件会自动生成,但我猜你可以使用嵌入式配置文件并比较/覆盖现有的配置文件。这将是比注册表方法更好的方法,因为用户/应用程序需要访问注册表,这有时会因用户帐户权限和环境而成为问题。
标签: c# configuration-files appsettings