2009-11-26 75 views
42

Trong ứng dụng WPF của tôi, tôi bấm vào Settings.settings trong Solution Explorer và nhập StringCollection biến với một tài phạm vi:Dữ liệu cho Properties.Settings.Default được lưu ở đâu?

alt text http://i45.tinypic.com/24xdmir.png

trong app.config của tôi, tôi thấy rằng họ sẽ được lưu ở đó:

<userSettings> 
    <TestSettings.Properties.Settings> 
     <setting name="Paths" serializeAs="Xml"> 
      <value> 
       <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
        <string>one</string> 
        <string>two</string> 
        <string>three</string> 
        <string>four</string> 
        <string>five</string> 
        <string>six</string> 
        <string>seven</string> 
       </ArrayOfString> 
      </value> 
     </setting> 
    </TestSettings.Properties.Settings> 
</userSettings> 

sau đó tôi chạy ứng dụng của tôi và với thi s mã:

StringCollection paths = Properties.Settings.Default.Paths; 

Properties.Settings.Default.Paths.Add("added in code"); 
Properties.Settings.Default.Save(); 

foreach (var path in paths) 
{ 
    System.Console.WriteLine(path); 
} 

mà mang lại cho tôi sản lượng này:

one 
two 
three 
four 
five 
six 
seven 
added in code 

tôi chạy các ứng dụng một lần nữa và nó mang lại cho tôi kết quả này:

one 
two 
three 
four 
five 
six 
seven 
added in code 
added in code 

Nhưng tôi nhìn vào của tôi app.config một lần nữa và nó vẫn có giá trị ban đầu:

<userSettings> 
    <TestSettings.Properties.Settings> 
     <setting name="Paths" serializeAs="Xml"> 
      <value> 
       <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
        <string>one</string> 
        <string>two</string> 
        <string>three</string> 
        <string>four</string> 
        <string>five</string> 
        <string>six</string> 
        <string>seven</string> 
       </ArrayOfString> 
      </value> 
     </setting> 
    </TestSettings.Properties.Settings> 
</userSettings> 

đâu là những giá trị được bổ sung bởi các ứng dụng đang được cứu?

Trả lời

46

Vì bạn chọn phạm vi người dùng, họ sẽ được lưu trong mỗi thư mục hồ sơ người dùng, đặc biệt hơn, bên trong thư mục AppData profile của người dùng trong một file có tên user.config.

Đường dẫn đầy đủ phụ thuộc vào ứng dụng.

Trong Windows 7 mà không roaming profile và với một ứng dụng Windows Forms tên Example.Settings.CustomClass tôi nhận được thư mục sau:

C:\Users\[user]\AppData\Local\Microsoft\Example.Settings.CustomCl_Url_3qoqzcgn1lbyw2zx3oz1o3rsw2anyjsn\1.0.0.0 

Cũng lưu ý rằng họ sẽ được lưu dùng trong việc xem xét các phiên bản của ứng dụng của bạn và rằng giá trị được lưu trữ trong App.config là các giá trị mặc định được sử dụng cho người dùng mới.

+1

Tôi đang gặp vấn đề tương tự. Tôi thấy rằng nó nhận được cập nhật trong thư mục AppData \ Local \ xxxx khi tôi lưu. Nhưng khi tôi khởi chạy ứng dụng, nó không được đọc từ đó. Làm thế nào để tôi ép nó đọc từ đó? – coolshashi

+0

@coolshashi, tốt nhất là bạn nên tạo một câu hỏi mới, nơi bạn mô tả các điều kiện chính xác mà bạn đang quan sát sự thất bại khi tải cài đặt người dùng. –

+3

Câu trả lời này vẫn đúng cho Windows 10 và áp dụng cho WPF và winforms. Vì vậy, đường dẫn đến 'user.config' là' <...> \ Users \ \ AppData \ Local \ \ .exe_Url_ <32 ký tự ngẫu nhiên> \ '. Tên ứng dụng của bạn đã bị cắt ngắn ở 25 ký tự có thể là tối đa? –

0

Tôi đang tìm kiếm trong Win 10 cho Cài đặt. Nếu bất kỳ ai khác cần biết, chúng không được lưu trữ trong Thư mục con của Microsoft (xem câu trả lời trước). Chỉ cần nhìn vào đây:

C:\Users\[user]\AppData\Local\Example\Example...\1.0.0.0\ 
Các vấn đề liên quan