Таким образом, настройки по умолчанию хранятся в файле <exename>.config
, расположенном в том же каталоге, что и исполняемый файл.
Причина, по которой вы не можете найти файл user.config, заключается в том, что он создается, только если вы внесли изменения в значения по умолчанию. Пользовательские настройки переопределяют значения по умолчанию, которые хранятся в файле <exename>.config
. Если не было внесено никаких изменений, то пользовательский файл конфигурации не будет существовать. И ... как только он будет существовать, вы заметите, что в файле user.config будут отображаться только те настройки, которые были изменены.
Чтобы проверить это ... создайте фиктивную переменную с именем like temp в вашем файле настроек. При запуске приложения выполните:
Settings1.Default.temp = Settings1.Default.temp + 1;
Settings1.Default.Save();
Теперь у вас будет файл user.config, созданный в папке ApplicationData пользователя, которая в Vista находится в: C:\Users\<username>\AppData\Local\<company>\<productname>
Вот некоторый код, который я написал, чтобы определить, где находятся все различные специальные папки в разных операционных системах. (Возможно, потребуется выполнить поиск-замену log.Debug
и заменить на 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 ));
Вывод в 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"
Вывод на 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"