2011-12-06 30 views
5

Tôi có một ứng dụng WPF phải chạy cho tất cả người dùng một máy với cùng cài đặt. Các thiết lập phải được đọc/ghi. Tôi trước đây đã được lưu trữ các thiết lập cấu hình người dùng trong CommonApplicationData, ví dụTôi nên lưu trữ cài đặt ứng dụng trên toàn máy cho người dùng không chuyển vùng ở đâu?

var settingsFile = Path.Combine(Environment.GetFolderPath(
    Environment.SpecialFolder.CommonApplicationData), 
    "[company]", "[product]", "settings.xml"); 

Tuy nhiên tôi đọc sáng nay rằng CommonApplicationData được sử dụng cho roaming profile, có nghĩa là họ không máy cụ thể. Từ những gì tôi có thể tìm thấy, chúng tôi có các tùy chọn sau cho dữ liệu ứng dụng (source):

// Store application-specific data for the current roaming user. 
// A roaming user works on more than one computer on a network. 
// A roaming user's profile is kept on a server on the network and is loaded onto a system ' when the user logs on. 
System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 


// Store in-common application-specific data that is used by all users. 
System.Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData); 


// Store application-specific data that is used by the current, non-roaming user. 
System.Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); 

Nói tóm lại, tùy chọn là

  • Độc thân người sử dụng, chuyển vùng
  • Tất cả người dùng, chuyển vùng
  • Người dùng đơn lẻ, không chuyển vùng

Điều tôi cần là tất cả người dùng, không chuyển vùng. Suy nghĩ ban đầu của tôi là để chuck tất cả vào thư mục cài đặt, nhưng điều đó có vẻ như một ít trường học cũ?

Suy nghĩ?

+1

Bạn đã đọc ở đâu 'CommonApplicationData' đang chuyển vùng? Tôi tìm thấy nó một chút lạ ... –

+0

Tôi đọc nó trong cuốn sách của Bill Wagner Hiệu quả C#. Tuy nhiên đó là nơi duy nhất tôi có thể tìm thấy miếng ngon này vì vậy có lẽ đó là một sai lầm hiếm hoi về phần của Wagner, và tôi rất muốn nghe nếu tôi sai về điều này. –

+0

Từ tài liệu [MSDN] (http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx): "Thư mục phục vụ như một kho lưu trữ chung cho dữ liệu ứng dụng cụ thể được sử dụng bởi tất cả người dùng. " –

Trả lời

2

Here is a good explanation thư mục appdata và các mục khác liên quan đến người dùng chuyển vùng.

Theo MSDN Documentation:

CommonApplicationData là "thư mục phục vụ như là một kho lưu trữ chung cho dữ liệu ứng dụng cụ thể được sử dụng bởi tất cả người dùng"

trong khi

LocalApplicationData là "thư mục phục vụ như một kho lưu trữ chung cho dữ liệu ứng dụng cụ thể được sử dụng bởi người dùng hiện tại, không chuyển vùng ".

1

Tùy chọn của tôi cho điều này là Application Settings có thể là ứng dụng rộng hoặc cho mỗi người dùng như bạn muốn cho mỗi cài đặt.

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