Настройки заканчиваются в user.config, даже если они не изменены, как прочитано из app.config - PullRequest
0 голосов
/ 11 марта 2010

Рассмотрим приложение на C #, которое имеет ряд пользовательских настроек, некоторые активно используются и обновляются, а другие всегда доступны только для чтения. При каких обстоятельствах такое свойство настроек только для чтения может оказаться в файле user.config для каждого пользователя?

Я вижу странное поведение, когда несколько параметров конфигурации пользователя, которые приложение просто читает, в конечном итоге в user.config с одинаковыми неизмененными значениями по умолчанию. В моем приложении установлена ​​версия, поэтому при развертывании следующей версии и изменении некоторых параметров только для чтения в соответствии с новой версией они не воспринимаются новой версией, поскольку ApplicationSettingsBase.Upgrade () выбирает локальные устаревшие значения.

Как правило, если приложение никогда не изменяет определенное свойство настроек, как и почему оно попадает в user.config?

Кроме того, как я могу исправить повреждение и стереть существующие свойства только для чтения из user.config при будущих обновлениях?

1 Ответ

0 голосов
/ 11 марта 2010

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

Есть ли у вас что-то вроде:

Properties.Settings.Default.Property1 = this.SomeValue;
Properties.Settings.Default.Property2 = this.ReadOnlyValue;
Properties.Settings.Default.Save();

Что касается вашего дополнительного вопроса, я думаю, что Save перезаписывает существующий файл, а не просто обновляет его.

...