Где хранятся настройки My.Settings в VB 2010 .NET?

Являются My.Settings значения сохраняются в самой программе или они хранятся в реестре? Так, например, если я установлю My.Settings значение с программой, затем я копирую саму программу на другой ПК - это My.Settings значение еще установлено?

4 ответа

Решение

Это зависит от объема, который вы выбрали. Существует две настройки области - Область применения и Область пользователя.

Из статьи MSDN:

Параметры области приложения доступны только для чтения и используются всеми пользователями этого приложения. Эти настройки хранятся в файле app.config в разделе. Во время выполнения файл app.config будет находиться в папке bin и будет именоваться именем вашего приложения (MySettingsDemo.exe.config).

Настройки области действия индивидуальны для каждого пользователя. Они могут быть прочитаны и безопасно установлены кодом приложения во время выполнения. Эти настройки хранятся в файле user.config. Чтобы быть технически точным, для каждого пользователя существует два user.configs: одно для не роуминга, а другое для роуминга. Хотя в документации по Visual Basic 2005 указано, что файл user.config будет именоваться в соответствии с именем пользователя (joe.config), это не так. Файл user.config создается в:

<c:\Documents and Settings>\<username>\[LocalSettings\]ApplicationData\<companyname>\<appdomainname>_<eid>_<hash>\<verison>.
Dim config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal)
MessageBox.Show(config.FilePath)

Если вы установили свое приложение с помощью clickonce, тогда ваши MySettings будут сохранены в конфигурационном файле, который хранится в C:\Users\\AppData\Local\Apps\2.0\Data........

поиск по этим путям с файлом с именем yourapp.exe.config

Дело в том, что MySettings будет храниться в файле app.config этого приложения, а после публикации файл app.config сохраняется как файл applicationname.exe.config.

Они определенно не хранятся в программе, если они являются пользовательскими настройками - это не очень легко реализовать, и довольно бессмысленно. Скорее они хранятся в файле конфигурации в папке%AppData%. Так что нет, если вы скопировали программу, пользовательские настройки не будут идти с ней, только настройки приложения.

Другие вопросы по тегам