Vì vậy, các thiết lập mặc định được lưu trữ trong các tập tin <exename>.config
nằm trong cùng thư mục với tập tin thực thi.
Lý do bạn không thể tìm thấy tệp user.config là nó chỉ được tạo nếu bạn đã thực hiện thay đổi đối với mặc định. Cài đặt người dùng ghi đè các giá trị mặc định được lưu trữ trong tệp <exename>.config
. Nếu không có thay đổi nào được thực hiện, thì sẽ không có tệp cấu hình người dùng nào tồn tại. Và ... một khi nó tồn tại, bạn sẽ nhận thấy rằng chỉ có các thiết lập đã được thay đổi sẽ hiển thị trong tập tin user.config.
Để kiểm tra điều này ... hãy tạo biến giả gọi là temp trong tệp Cài đặt của bạn. Khi bạn khởi động ứng dụng của bạn làm:
Settings1.Default.temp = Settings1.Default.temp + 1;
Settings1.Default.Save();
Bây giờ bạn sẽ có một tập tin gọi là user.config tạo ra trong thư mục ApplicationData của người dùng đó trên Vista là: C:\Users\<username>\AppData\Local\<company>\<productname>
Dưới đây là một số mã tôi đã viết để giúp xác định nơi tất cả các SpecialFolders khác nhau, nơi trên hệ điều hành khác nhau.(Có thể muốn làm một tìm-thay thế cho log.Debug
và thay thế bằng Console.WriteLine
)
log.Debug("SpecialFolder.ApplicationData: " + Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
log.Debug("SpecialFolder.CommonApplicationData: " + Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData));
log.Debug("SpecialFolder.ProgramFiles: " + Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles));
log.Debug("SpecialFolder.CommonProgramFiles: " + Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles));
log.Debug("SpecialFolder.DesktopDirectory: " + Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory));
log.Debug("SpecialFolder.LocalApplicationData: " + Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData));
log.Debug("SpecialFolder.MyDocuments: " + Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
log.Debug("SpecialFolder.System: " + Environment.GetFolderPath(Environment.SpecialFolder.System));
Output Trên Windows Server 2003:
SpecialFolder.ApplicationData: "C:\Documents and Settings\blake\Application Data"
SpecialFolder.CommonApplicationData: "C:\Documents and Settings\All Users\Application Data"
SpecialFolder.ProgramFiles: "C:\Program Files"
SpecialFolder.CommonProgramFiles: "C:\Program Files\Common Files"
SpecialFolder.DesktopDirectory: "C:\Documents and Settings\blake\Desktop"
SpecialFolder.LocalApplicationData: "C:\Documents and Settings\blake\Local Settings\Application Data"
SpecialFolder.MyDocuments: "C:\Documents and Settings\blake\My Documents"
SpecialFolder.System: "C:\WINDOWS\system32"
Output trên Vista:
SpecialFolder.ApplicationData: "C:\Users\blake\AppData\Roaming"
SpecialFolder.CommonApplicationData: "C:\ProgramData"
SpecialFolder.ProgramFiles: "C:\Program Files"
SpecialFolder.CommonProgramFiles: "C:\Program Files\Common Files"
SpecialFolder.DesktopDirectory: "C:\Users\blake\Desktop"
SpecialFolder.LocalApplicationData: "C:\Users\blake\AppData\Local"
SpecialFolder.MyDocuments: "C:\Users\blake\Documents"
SpecialFolder.System: "C:\Windows\system32"
Vấn đề là tệp cài đặt không có ở đó. Không có thư mục ứng dụng nào trong: «username» \ Local Settings \ Application Data \:/Tôi đang sử dụng Windows 7. – pkolodziej
Hãy thử «username» \ AppData \ Local thay thế. Thư mục này có thể bị ẩn, nhưng nên tồn tại. Bạn có thể bỏ đặt các mục bị ẩn trong chế độ xem cho trình khám phá. – meklarian
Nó thực sự là không có! Bạn có biết bất kỳ công cụ nào mà tôi có thể sử dụng để giám sát nơi tệp exe đang đọc từ đâu không? – pkolodziej