где значение property.setting хранится в приложении c # windows - PullRequest
10 голосов
/ 26 января 2009

Я думал, что это должен быть файл конфигурации, но не могу его найти. спасибо

Ответы [ 4 ]

53 голосов
/ 26 января 2009

Расположение файла конфигурации может быть немного скользким. В зависимости от того, является ли он настройкой «пользователь» или «приложение», он перейдет в другой файл. Некоторые настройки могут даже исходить из вашего «машинного» конфига (как в случае с ASP.NET). Вместо того, чтобы гадать, где все, я нахожу гораздо более полезным спросить .NET, где он ищет эти файлы . Грубо:

//Machine Configuration Path
string path1 = ConfigurationManager.OpenMachineConfiguration().FilePath;
//Application Configuration Path
string path2 = ConfigurationManager.OpenExeConfiguration( 
      ConfigurationUserLevel.None).FilePath;
//User Configuration Path 
string path3 = ConfigurationManager.OpenExeConfiguration(
      ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath;

App.Config

Это то, что добавляется в ваш проект. Процесс сборки получит имя [myproject] .exe.config . Это содержит (в основном) настройки приложения, доступные только для чтения, и настройки уровня приложения для пользовательских настроек. Настройки уровня приложения сложно программно изменить их значения. Свойства настройки уровня приложения будут иметь только «get». Намерение таково: , если ваши настройки предназначены для всех пользователей приложения, их следует установить вручную (или установщиком). Если он изменяется для каждого пользователя, установите его для каждого пользователя.

Двоичные настройки по умолчанию

Ваше приложение будет работать без файла [myproject] .exe.config. Для этого бинарный файл имеет собственную версию файла «Хранимый». Это полезно в некоторых отношениях, но может сбить с толку. Если у вас есть файл .config в неправильном месте или с неправильным именем, .NET возвращается к «двоичным значениям по умолчанию». Это может привести к невозможности повлиять на настройки путем изменения файла конфигурации. Используйте метод, описанный выше, чтобы узнать, куда идет .config REALLY, или посмотрите на гнев бинарных настроек по умолчанию.

User.config

Это генерируется в первый раз, когда вы «сохраняете» свой объект Default.Settings с настройкой «для пользователя». Этот файл сохраняется в пути к профилю пользователя в месте, основанном на имени вашего проекта, версии, операционной системе и некоторых других темных .NET magics . Свойства этих настроек доступны для чтения / записи. Они предназначены для простой настройки, а затем сохраняются одним вызовом.

Потянув его вместе

Так, где мои настройки? Ответ в том, что потенциально многие файлы объединяются, чтобы получить «Активный набор» настроек. Настройки App.config и user.config являются основными блоками, но есть настройки machine.config, а также есть настройки сборки зависимостей, которые могут усложнить ситуацию ... но это совсем другая тема.

Истинная правда файлов конфигурации разбросана по множеству отвратительных случаев и подробностей . Однако, с небольшим знанием о том, как они объединяются, это довольно полезная система. Особенно, если вы понимаете, что вы можете привязать данные к этим настройкам;)

12 голосов
/ 26 января 2009

Если вы говорите о настройках .Net, то они обычно находятся в файле .config (xml) в том же каталоге, что и приложение. Однако при их сохранении локальная копия сохраняется в папке, доступной для записи пользователем (обычно это C: \ Users \ username \ AppData \ Local под Vista). Под XP посмотрите в папке Documents and Settings.

Приложение .Net использует этот файл вместо файла по умолчанию в каталоге приложения.

Надеюсь, это поможет.

1 голос
/ 26 января 2009

В Windows XP он хранится в файле с именем user.config во вложенной папке:

C:\Documents and Settings\username\Local Settings\Application Data

http://dotnetproject.blogspot.com/2006/08/where-is-userconfig-file-located-in.html

1 голос
/ 26 января 2009

Вы имеете в виду файл .settings в вашем приложении? Когда вы добавляете значения в этот файл, для вас создается файл app.config. Вы должны увидеть это в своем обозревателе решений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...