Опять же, пользовательские конфигурационные файлы C # - PullRequest
1 голос
/ 25 марта 2010

У меня есть большой конфигурационный файл (пользователь), который мне нужен, чтобы перейти в нужное место и иметь некоторые значения по умолчанию.

Поскольку у меня есть класс установщика, я добавил некоторые настройки параметров в файл конфигурации в нем, но создал файлы конфигурации в папке установщиков.

Каков наилучший способ гарантировать, что эти параметры по умолчанию будут записаны только один раз и в нужном месте?

1 Ответ

6 голосов
/ 25 марта 2010

Стандартный способ использования значений по умолчанию в app.config. Например, вот значение по умолчанию для каждой версии, которое я использую, чтобы код копировал настройки пользователя между обновлениями:

<userSettings>
    <Software.Namespace.Properties.UserSettings>
      <setting name="RequiresUpgrade" serializeAs="String">
        <value>True</value>
      </setting>
    </Software.Namespace.Properties.UserSettings>
  </userSettings>
  <-- .... -->
  <userSettings>
    <Software.Namespace.Properties.UserSettings>
      <setting name="RequiresUpgrade" serializeAs="String">
        <value>True</value>
      </setting>
    </Software.Namespace.Properties.UserSettings>
  </userSettings>
</configuration>

Вам нужно будет добавить файл .settings в свой проект или перейти в свойства своего проекта -> Настройки и настроить их оттуда.

Расположение собственного файла настроек пользователя обычно находится в его папке AppSettings в его профиле. Я не уверен, что это можно изменить, но я, кажется, помню, как зачитывал это.

EDIT

Подробнее об этом можно прочитать здесь: Архитектура настроек приложения

Здесь также показан следующий пример, если вы хотите упростить его:

[UserScopedSetting()]
[DefaultSettingValue("white")]
public Color BackgroundColor
{
    get
    {
        return ((Color)this["BackgroundColor"]);
    }
    set
    {
        this["BackgroundColor"] = (Color)value;
    }
}

И, похоже, очень важно отметить при использовании этого (цитата):

Для приложений на основе Windows Forms скопировать на локальный компьютер, app.exe.config будет находиться в том же каталог в качестве основного каталога основной исполняемый файл приложения, и user.config будет находиться в место, указанное Application.LocalUserAppDataPath свойство . Для установленного приложения с помощью ClickOnce, оба эти файлы будут находиться в ClickOnce Справочник данных под % InstallRoot% \ Documents and Настройки \ имя пользователя \ Локальные настройки .

Место хранения этих файлов немного отличается , если у пользователя есть включены роуминговые профили , которые позволяет пользователю определять разные Windows и настройки приложения при он или она использует другие компьютеры в домене. В этом случае оба Приложения ClickOnce и приложения не-ClickOnce будут иметь их app.exe.config и user.config файлы хранятся в % InstallRoot% \ Documents and Настройки \ имя пользователя \ Данные приложения .

...