Вопрос по settings, visual-studio, .net, visual-studio-2008 – Файл настроек Visual Studio - как это работает?

6

Я не понимаю следующие вещи:

What is the difference between app.config (applicationname.exe.config) and settings file ? I am unable to locate the *.settings file in Windows7 AppData directory under the specific account (I heard that it should be located somewhere over there) ? Let's assume that *.settings file is somewhere on the hard drive. Why on the development time the data from settings file are copied to application config file?

С уважением PK

Ваш Ответ

2   ответа
5

default settings хранятся в<exename>.config файл находится в том же каталоге, что и исполняемый файл.

Причина, по которой вы не можете найти файл user.config, заключается в том, что он создается, только если вы внесли изменения в значения по умолчанию. Пользовательские настройки отменяют значения по умолчанию, которые хранятся в<exename>.config файл.If no changes have been made, then no user configuration file will exist.  И ... как только он появится, вы заметите, что в файле user.config будут отображаться только те настройки, которые были изменены.

Чтобы проверить это ... создайте фиктивную переменную с именем подобно 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"
Error: User Rate Limit Exceeded
0

and will apply to all sessions of the application. The *.settings file is typically for settings specific to a given user's use of an application.

Try looking in the Application Data directory beneath Local Settings [«username»\Local Settings\Application Data\«app name ...»], instead of the user's direct Application Data directory [«username»\Application Data].

The copy of the settings in the app.config file for a given *.settings file are used to initialize it the first time those settings are used; including the case when a new setting is added and a prior copy of the *.settings file doesn't have the new setting yet.

Вот ссылка для краткого обзора настроек в C #.

Использование настроек в C # (MSDN)

Error: User Rate Limit Exceeded pkolodziej
Error: User Rate Limit Exceeded pkolodziej
Error: User Rate Limit Exceeded pkolodziej
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы