Возможный дубликат:
В чем разница между файлом app.config и файлом XYZ.settings?
Меня совершенно смущает очевидная избыточность этих двух механизмов в Visual Studio для хранения и управления настройками настольных приложений:
- Вы можете использовать файл XML
app.config
, добавляя элементы в раздел<appSettings>
. Они могут быть извлечены из кода с помощью классаConfigurationManager
. - В качестве альтернативы вы можете использовать файл Settings.settings для добавления отдельных настроек через редактор. Visual Studio создаст класс
Settings
для безопасного поиска по типу параметров во время выполнения.
Эти два механизма, похоже, служат одной и той же (или почти той же) цели. Я знаю, что есть некоторые различия, но я также озадачен перекрытием и его последствиями. Например, когда я использую Visual Studio для добавления параметров в файл Settings.settings
, вся информация, которую я вставляю, заканчивается как записи в файле app.config
. По-видимому, существует механизм синхронизации: если я изменяю параметр в файле app.config
, Visual Studio предлагает мне обновить файл Settings.settings
при следующем открытии его в редакторе.
Мои вопросы:
- Почему два механизма, а не только один?
- Каковы наиболее распространенные сценарии использования
app.config
надSettings.settings
и наоборот? - Что произойдет, если мое приложение использует
Settings.settings
и я изменил значение вapp.config
после его развертывания? СинхронизацияSettings.settings
не может произойти, поскольку она уже скомпилирована и распределена.
Примечание. Я искал вопросы по этой теме, но я еще более смущен. Например, ответы на этот вопрос здесь довольно противоречивы и не проливают много света.
Примечание 2. Я знаю, что app.config
- это имя файла времени разработки, и я знаком с динамикой копирования и переименования Visual Studio в исполняемую папку.