Существующие ответы охватывают много места, но я думал, что упомянул еще один момент.
Я использую реестр для хранения общесистемных настроек. То есть, когда 2 или более программ нуждаются в одинаковых настройках. Другими словами, параметр, используемый несколькими программами.
Во всех остальных случаях я использую локальный файл конфигурации, который находится либо на том же пути, что и исполняемый, либо на одном уровне вниз (в каталоге конфигурации). Причины уже рассмотрены в других ответах (переносимый, можно редактировать с помощью текстового редактора и т. Д.).
Зачем устанавливать системные настройки в реестр? Ну, я обнаружил, что если параметр используется совместно, но вы используете локальные файлы конфигурации, вы дублируете настройки. Это может означать, что вам нужно изменить настройку в нескольких местах.
Например, программа A и программа B указывают на одну и ту же базу данных. У вас может быть «системный» параметр реестра для строки подключения. Если вы хотите указать на другую базу данных, вы можете изменить строку соединения в одном месте, и обе программы теперь будут выполняться против другой базы данных.
Примечание. Нет смысла использовать реестр таким образом, если двум или более программам не нужно использовать одни и те же значения. Например, в Программе А и Программе В, которые нуждаются в строке подключения к базе данных, может быть одинаковой, но не всегда. Например, я хочу, чтобы программа B теперь использовала тестовую базу данных, но программа A должна продолжаться с использованием производственной базы данных.
В приведенном выше примере у вас может быть какая-то локальная настройка, переопределяющая общесистемные настройки, но она может стать слишком сложной для простых задач.
JSON - это еще один широко используемый формат для простых файлов данных в настоящее время. – jpmc26 2014-08-22 18:55:00
недостающие точки: переустановка свежих окон не убивает файлы ini. Централизованная база данных должна быть мьютексирована, и мы не говорим о качестве Oracle с транзакциями с несколькими уровнями. Чистые/антивирусные инструменты любят возиться с реестром людей, а не с разбросанными ini-файлами. реестр - это просто файловая система в файловой системе, это антипаттерн http: //en.wikipedia.org/wiki/Inner-platform_effect ... – 2015-01-08 05:40:55
Файлы INI - лучшая система. Приложение при успешной загрузке может просто сохранить резервную копию INI для защиты от коррупции. – Mario 2015-01-16 21:12:55