6

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

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

  1. What is the difference between app.config (applicationname.exe.config) and settings file ?
  2. 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) ?
  3. 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

  • Error: User Rate Limit Exceeded

    от pkolodziej
  • Error: User Rate Limit Exceeded

    от
  • Error: User Rate Limit Exceeded

    от pkolodziej
  • Error: User Rate Limit Exceeded

    от
  • Error: User Rate Limit Exceeded

    от
  • Error: User Rate Limit Exceeded

    от pkolodziej
  • 0

    The app.config file represents settings intrinsic to the application

    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)

  • 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"