如何重新创建 app.config.exe.config
Posted
技术标签:
【中文标题】如何重新创建 app.config.exe.config【英文标题】:how to recreate app.config.exe.config 【发布时间】:2013-06-01 16:07:14 【问题描述】:我的程序正在从我的 app.config 创建一个 .exe.config,并且该 exe 会保留用户在我的程序运行期间和运行后对其所做的更改。
这很好,但我想在我的 Windows 窗体应用程序中添加一个按钮,允许用户将这些设置重置为在我的 app.config 中静态/手动更改的原始值。
最好的方法是什么?这是我的 app.config 的全部内容。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="CacheDir" value="C:\blah\prod\cache" />
<add key="CheckFilesDir" value="C:\blah\prod\cache\cachefiles" />
<add key="GenerateTo" value="C:\Users\blah\Desktop" />
<add key="CustomVariable1Enabled" value="false" />
<add key="CustomVariable2Enabled" value="false" />
<add key="CustomVariable1" value="" />
<add key="CustomVariableValue1" value="" />
<add key="CustomVariable2" value="" />
<add key="CustomVariableValue2" value="" />
正常访问like..
ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap();
configFileMap.ExeConfigFilename = "C:\\Users\\RJenkins\\Documents\\Visual Studio 2010\\Projects\\CacheConfigNinja\\CacheConfigNinja\\bin\\Debug\\CacheConfigNinja.exe.config";
//configFileMap.ExeConfigFilename = "C:\\Users\\RJenkins\\Documents\\Visual Studio 2010\\Projects\\CacheConfigNinja\\CacheConfigNinja\\bin\\Release\\CacheConfigNinja.exe.config";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);
【问题讨论】:
您能否添加一个干净的.config
文件作为应用程序资源并将其用作重置值?
我不明白为什么不这样做,但我正在寻找最好的方法,因为这似乎是人们经常不得不做的事情。
您如何保存更改?
【参考方案1】:
您可以在应用程序设置中调用Reset()
方法。从文档中,这个方法:
将持久的应用程序设置值恢复为其对应的默认属性。
【讨论】:
我已经添加了我的 app.config 以及我通常访问它的方式。我不确定如何在我的代码中使用该 Reset() 方法。 @user2081737 应该是Properties.Settings.Default.Reset()
该死的,无论出于何种原因,这都没有做任何事情。也许我还没有以标准方式或其他方式设置我的 app.config?
@user2081737 是的 - 看到了您的访问代码。这不是处理应用程序设置的标准方式。您如何更改设置值?
@user2081737 有关处理此问题的“正常”方式,请参阅:msdn.microsoft.com/en-us/library/k4s6c3a0.aspx 这允许应用程序设置针对每个用户,并且将与重置方法一起使用。【参考方案2】:
这个怎么样?
Properties.Settings.Default.Reset()
Properties.Settings.Default.Reload()
【讨论】:
由于某种原因,这没有做任何事情。以上是关于如何重新创建 app.config.exe.config的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Javascript 鼠标事件和 CSS 重新创建“突出显示”选择?