2013-06-05 59 views
1

我的程序正在從我的app.config創建一個.exe.config,並且該exe文件保留了用戶在整個運行程序和運行完程序後所做的更改。如何重新創建app.config.exe.config

這是偉大的,但除了我想添加一個按鈕到我的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="" /> 

正常訪問如..

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); 
+0

你可以添加一個乾淨的'.config'文件作爲應用程序資源並將其用作重置值嗎? –

+0

我不明白爲什麼不,但我正在尋找最好的方式,因爲這似乎是人們經常需要做的事情。 – rcj

+0

你是如何保存變更的? –

回答

2

你可以叫上你的應用程序設置的Reset()方法。從文檔中,此方法:

將持久保存的應用程序設置值恢復爲其相應的默認屬性。

+0

我已經添加了我的app.config和我通常訪問它的方式。我不知道如何在我的代碼中使用Reset()方法。 – rcj

+0

@ user2081737它應該是'Properties.Settings.Default.Reset()' –

+0

當然,不管出於什麼原因什麼都不做。也許我沒有用標準的方式設置我的app.config? – rcj

1

這個怎麼樣?

Properties.Settings.Default.Reset() 
Properties.Settings.Default.Reload() 
+0

由於某種原因,這沒有做任何事情。 – rcj