Więc domyślne ustawienia są przechowywane w pliku <exename>.config
znajduje się w tym samym katalogu co plik wykonywalny.
Powód, dla którego nie można znaleźć pliku user.config, jest tworzony tylko wtedy, gdy wprowadzono zmiany w wartościach domyślnych. Ustawienia użytkownika zastępują ustawienia domyślne, które są przechowywane w pliku <exename>.config
. Jeśli nie wprowadzono żadnych zmian, plik konfiguracyjny użytkownika nie będzie istnieć. A ... gdy już istnieje, zauważysz, że tylko ustawienia, które zostały zmienione, pojawią się w pliku user.config.
Aby to przetestować ... utwórz zmienną typu dummy o nazwie temp w swoim pliku ustawień. Po uruchomieniu aplikacji należy:
Settings1.Default.temp = Settings1.Default.temp + 1;
Settings1.Default.Save();
Będziesz teraz mieć plik o nazwie user.config utworzony w folderze użytkownika ApplicationData który na Vista znajduje się w: C:\Users\<username>\AppData\Local\<company>\<productname>
Oto kod, który napisałem, aby pomóc zidentyfikować gdzie wszystkie różne SpecialFoldery w różnych systemach operacyjnych.(Chcieć zrobić Find-wymienić na log.Debug
i zastąpić 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));
Wyjście W systemie 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"
Wyjście na 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"
Problem polega na tym, że plik ustawień nie istnieje. Nie ma katalogu aplikacji pod: «nazwa użytkownika» \ Ustawienia lokalne \ Dane aplikacji \:/Używam systemu Windows 7. – pkolodziej
Zamiast tego wypróbuj "username" \ AppData \ Local. Ten folder może być ukryty, ale powinien istnieć tak czy inaczej. Możesz usunąć ukryte elementy w widoku Eksploratora. – meklarian
To naprawdę nie jest! Czy znasz jakieś narzędzie, które można użyć do monitorowania, skąd plik exe czyta? – pkolodziej