Я бы подумал, что это будет зависеть от того, насколько вы хотите, чтобы зависимые сборки участвовали в управлении настройками.
Подход "один раз не думай больше" может быть удовлетворен оченьхорошо по реестру.Недостатком использования реестра является отсутствие встроенной поддержки для извлечения строки подключения в классах ADO.NET.
Такой подход может отличаться в зависимости от приложения.быть лучше удовлетворены требованием настроек быть в app.config приложения или web.config.Файлы конфигурации предлагают дополнительное преимущество встроенной поддержки строки подключения для многих классов, связанных с ADO.NET.
Я всегда немного опасаюсь изменять machine.config.Я не могу объяснить, почему, на самом деле, за исключением того, что настройки являются глобальными.Каждое имя строки подключения, используемое в machine.config, является именем, которое распространяется на другие конфиги и должно либо использоваться, игнорироваться, либо удаляться.Это также усложняет синхронизацию сред разработки с производством.Тем не менее, я не думаю, что эти причины являются вескими причинами, чтобы избежать machine.config.Просто взвесьте компромиссы, прежде чем принимать решение.
Пользовательские файлы в изолированном хранилище - еще один жизнеспособный вариант, хотя он обычно используется в средах с ограниченным доверием;поскольку GAC полностью доверяет, изолированное хранилище может быть не столь привлекательным вариантом.