.Net файлы конфигурации, что, если я хочу, чтобы только НЕКОТОРЫЕ настройки приложения были во внешнем файле конфигурации?

У меня есть файл app.config с такими настройками приложения:

<appSettings>
  <add key="setting1" value="1"/>
  <add key="setting2" value="2"/>
  <add key="setting3" value="3"/>
</appsettings>

Что делать, если я хочу переместить параметр 2 и параметр 3 во внешний файл конфигурации «prod.config», но хочу сохранить параметр 1 в корневом файле конфигурации? Я пытался сделать это:

<appSettings configSource="prod.config">
  <add key="setting1" value="1"/>
</appsettings>

Однако это приводит к сбою моего приложения. Это удастся, если я перенесу settings1 в файл prod.config. Как я могу заставить это работать?


person ATDeveloper    schedule 12.12.2011    source источник
comment
Какую версию Visual Studio вы используете? Если вы используете VS2010, вы можете использовать преобразования web.config, хотя для их использования для app.config требуется некоторая сборка.   -  person John Saunders    schedule 13.12.2011
comment
Ошибка: не удалось инициализировать систему конфигурации.   -  person ATDeveloper    schedule 13.12.2011


Ответы (2)


ОБНОВЛЕНИЕ 09.01.2012. Я начал использовать Team Build для проекта в сообщении, на которое я ссылался (ниже), и не хотел устанавливать Windows SDK на моей сборочной машине. Я провел небольшое исследование и наткнулся на SlowCheetah, который представляет собой < strong>способ сделать это. Существует также сообщение в блоге, чтобы узнать, как это сделать и запустить с помощью Team Build.


Увидев prod.config, я подумал, что вы, возможно, пытаетесь управлять настройками в зависимости от среды. Если это так, вы можете изучить преобразования файла конфигурации, которые делают именно это. Вы можете найти ссылки для начала работы здесь.

person John Laffoon    schedule 12.12.2011
comment
Да, я согласен с тем, что SlowCheetah — это НАШ путь! - person Sayed Ibrahim Hashimi; 28.04.2012

Если вы не возражаете против «злоупотребления» метками, разделы connectionString и appSettings принимают внешние файлы, и оба являются парами ключ-значение, которые содержат строки. Так что поместите все, что у вас есть, в connectionStrings, а все, чем вы не владеете (хотите, чтобы оно было внешним), в appSettings (или наоборот).

person MatthewMartin    schedule 12.12.2011