Как создать измененную копию файла machine.config?

Я хочу программно добавить/удалить/вставить строку для поставщика данных ADO .NET с помощью С#.

Моя первая мысль состояла в том, чтобы проанализировать файл с помощью какого-нибудь анализатора (например, Eto.Parse), затем добавить/удалить необходимый фрагмент текста, а затем записать новый файл в каталог установочного образа (который не защищен от записи, в отличие от защищенного от записи main machine.config). ).

Тогда я думаю, что файл - это xml, и можно использовать существующий механизм xml вместо пользовательского парсера. Загрузите XML, создайте объектную модель из XML, измените ее и сериализуйте.

Потом я понимаю, что объектная модель для работы с конфигами уже присутствует в пространстве имён System.Configuraion.

И я решаю поискать существующий пример того, как модифицировать конфиг машины с помощью этих классов. Я нашел только пример, как получить его местоположение new ConfigurationFileMap().MachineConfigFilename; (см. of-a-other-net-version">Лучший способ получить путь к machine.config другой версии .NET)


person user1709408    schedule 16.01.2016    source источник
comment
Странно, что вы хотите коснуться machine.config, так как это влияет на все приложения. Вы должны изменять свой собственный app.config или web.config только тогда, когда это необходимо.   -  person Lex Li    schedule 16.01.2016
comment
что, если он пишет скрипт установки для настройки «голого» сервера? Вы ВСЕ ЕЩЕ хотите заменить его суждение своим?   -  person bri    schedule 16.01.2016


Ответы (1)


Просто скажите ConfigManager, что вы хотите отредактировать что-то, кроме файла конфигурации текущего приложения.

Configuration config = ConfigurationManager.OpenMachineConfiguration(); 

Вы можете использовать config.sections [независимо] для доступа к определенным разделам.

Имейте в виду, что объект конфигурации отображает большинство свойств, которые вы пытаетесь настроить, поэтому вам нужно будет покопаться в интерфейсе определенного раздела, чтобы найти именно то, что вы пытаетесь испортить. Обновить.

person bri    schedule 16.01.2016