Как сохранить app.config через обновления ClickOnce с помощью ConfigurationManager? - PullRequest
6 голосов
/ 17 июня 2009

Этот вопрос точно описывает мою проблему, за исключением того, что я использую пользовательский раздел конфигурации в app.config с ConfigurationManager, поэтому представленное там решение не применимо ...

По сути, моя проблема в том, что когда ClickOnce обновляет приложение, оно устанавливается в другой каталог с новым app.config, тем самым стирая любые сделанные изменения. Мое приложение использует app.config для сохранения настроек приложения, так что это очень плохо ... объединенное обновление было бы превосходным (аналогично тому, что было достигнуто в другом вопросе), но на этом этапе было бы неплохо все автоматизированное.

Или я должен просто использовать заданное местоположение для моего файла app.config, а не пытаться использовать местоположение по умолчанию?

Ответы [ 2 ]

3 голосов
/ 17 июня 2009

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

Подход, который я планирую использовать, заключается в том, чтобы вручную обрабатывать обновления ClickOnce, а не разрешать приложение. проверить наличие обновлений и предложить пользователю установить. У меня также было несколько пользователей, которые не принимали обновление, и это было трудно исправить. Обрабатывая обновление вручную, я надеюсь, что смогу прочитать пользовательские настройки в память перед обновлением, а затем записать их обратно после завершения обновления. Для этого есть событие ApplicationUpdated.

Возможно, такой подход может сработать и для вас.

Отредактировано для добавления ссылок:

Googling for ApplicationDeployment также должен помочь.

1 голос
/ 12 июля 2011

Если вы можете, используйте Settings.settings (находится в разделе «Свойства» в вашем проекте), чтобы сохранить конфигурацию клиента.

ClickOnce автоматически объединит ваши пользовательские настройки, и вам не придется ни о чем беспокоиться. Проверьте что-то вроде этого для получения дополнительных инструкций: http://www.dotnetperls.com/settings-visual-studio

...