2017-04-18 31 views
2

問題:值由用戶在初始啓動設置將不會留在App.config中XML無法獲得App.config中設置堅持

所需的功能:值由用戶設定爲保持存儲在應用程序.config,除非用戶更改

我想使它第一次由用戶運行應用程序,他們設置一個文件夾,他們與程序所做的文件將被保存。我想將該字符串存儲在App.config中,以便只需設置一次。現在,它將設置它並將其保存在內存中,但如果程序關閉,則該值將丟失。我認爲調用.save()方法會修復它,但它沒有。 在模子開口:

if (ConfigurationManager.AppSettings["SaveFilePath"] == null) 
{ 
    FolderBrowserDialog fbd1 = new FolderBrowserDialog(); 
    fbd1.RootFolder = Environment.SpecialFolder.MyComputer; 
    fbd1.Description = "Select a folder to save to:"; 
    fbd1.ShowNewFolderButton = true; 

    if (fbd1.ShowDialog() == DialogResult.OK) 
    { 
     Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
     config.AppSettings.Settings.Add("SaveFilePath", fbd1.SelectedPath); 
     config.Save(); 

     ConfigurationManager.RefreshSection("appSettings"); 
    } 
} 
+0

App.Config中不打算成爲持久的存儲解決方案。你應該考慮以另一種方式堅持這些選項,或許是一個settings.json? – maccettura

回答

1

一個應該使用的應用程序設置文件(看到它在項目的屬性頁)來存儲和檢索用戶設置。

請參閱Using Settings in C#頁面顯示VS 2005,但它使用VS 2017年


enter image description here

+0

這聽起來不錯。我遵循這篇文章,並創建了一個新的設置來保存路徑。我替換了if條件來檢查'Properties.Settings.Default.defaultFilePath ==「C:\\」',但它不起作用。我在運行時收到信息消息,內容是「無法找到元素'userSettings'的模式信息」。我錯過了什麼需要配置? –

+0

@BrettMinster其他事情正在發生,這是不明顯的。我在許多項目中使用過用戶項目設置。我建議你創建一個控制檯應用程序在那裏嘗試。如果它起作用,那麼主要的問題就是出現問題。如果沒有,那麼你可以在這裏把問題發回到這個例子。請記住,每次構建時,用戶設置都會被覆蓋到「安裝」狀態,而不會保留。 – OmegaMan

+0

我遇到的問題是代碼中的其他地方。它現在正確存儲了該值,並且可以根據需要由用戶進行更改。我仍然無法解決在錯誤控制檯中顯示的消息,但它工作正常,並且它們不是實際的錯誤或警告。謝謝! –