2012-01-12 30 views
8

My App.Config là một cái gì đó như:app.config không được lưu các giá trị

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

tôi cố gắng để lưu các giá trị foo bằng cách sử dụng phương pháp sau đây:

private void SaveValue(string value) { 
    var config = 
     ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
    config.AppSettings.Settings.Add("foo", value); 
    config.Save(ConfigurationSaveMode.Modified); 
} 

nhưng điều này không làm thay đổi giá trị của nó. và tôi không có ngoại lệ. cách khắc phục sự cố này? cảm ơn trước!

+0

Dưới đây là ví dụ hoàn chỉnh [ConfigurationManager.OpenExeConfiguration Method (ConfigurationUserLevel)] (http://msdn.microsoft.com/en-us/library/ms134265. aspx) –

Trả lời

26

Khi bạn đang gỡ lỗi với Visual Studio có lẽ <yourexe>.vshost.exe.config được sửa đổi thay vì <yourexe>.exe.config. Khi bạn xây dựng ứng dụng ở chế độ Release chỉ có <yourexe>.exe.config tồn tại và sẽ được cập nhật.

Mã của bạn cũng sẽ thêm nút phụ vào tệp cấu hình. Sử dụng một cái gì đó giống như mã dưới đây để cập nhật cài đặt:

var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
config.AppSettings.Settings["foo"].Value = "text";  
config.Save(ConfigurationSaveMode.Modified); 
+0

Cảm ơn bạn rất nhiều vì đã trả lời! Làm việc tốt. :) – Jack

0

Hãy thử bằng cách đầu tiên xóa giá trị cũ và sau đó thêm nó một lần nữa

config.AppSettings.Settings.Remove("foo"); 
config.AppSettings.Settings.Add("foo", value); 
config.Save(ConfigurationSaveMode.Modified); 
+1

không hoạt động đối với tôi. – Jack

3

App.config được sao chép vào thư mục đầu ra về xây dựng, có tên <yourexe>.exe.config. Đây là tệp cấu hình thực được tải và lưu vào thời gian chạy.

Có giao diện trong thư mục đầu ra của bạn, có thể bạn sẽ thấy tệp cấu hình chứa các thay đổi của mình.

+2

chính xác ở đó mà tôi đang thấy. không có thay đổi. – Jack

Các vấn đề liên quan