Загрузка другой файл конфигурации приложения во время выполнения может быть сделано используя сопоставленный файл конфигурации. Вам необходимо добавить ссылку на System.Configuration.dll
в свой проект.
Задайте значение Copy to Output Directory
свойство всех дополнительных файлов конфигурации (например, App1.config, App2.config и т. д.) other tha n по умолчанию (App.config) - Copy if newer
. Таким образом, они будут доступны в каталоге вывода проекта (\ bin \ debug) после того, как проект будет построен. Значение по умолчанию этого свойства: Do not copy
.
Вот фрагмент кода, как читать данные конфигурации не по умолчанию конфигурационные файлы:
ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap();
configFileMap.ExeConfigFilename = "App1.config"; // app1.config should be present in root directory from where application exe is kicked off
// Get the mapped configuration file
var config = ConfigurationManager.OpenMappedExeConfiguration(
configFileMap, ConfigurationUserLevel.None);
//get the relevant section from the config object
AppSettingsSection section = (AppSettingsSection)config.GetSection("appSettings");
//get key value pair
var keyValueConfigElement = section.Settings["appSettingsKey"];
var appSettingsValue = keyValueConfigElement.Value;
Если у вас есть несколько файлов конфигурации приложения, то вы можете сохранить настройки в неплатеже App.config
файл, с помощью которого вы можете принять решение во время выполнения, о котором загружается дополнительный файл конфигурации, например App1.config
Примечание: Имейте в виду, что код, как ConfigurationManager.AppSettings["DeployEnv"]
все равно будет считывать данные из файла по умолчанию App.config
.Это поведение не может быть изменено. Загрузка файла по умолчанию App.config
не может быть запрещена. Вы должны использовать альтернативные средства, как показано выше, для чтения данных из файлов конфигурации, отличных от настроек по умолчанию.
+1: и просто для того, чтобы быть предельно ясным: файлы конфигурации, связанные с проектом сборки, НИКОГДА не будут использоваться. Будут использоваться только основные файлы конфигурации проекта. Вы должны контролировать их на этом уровне. – NotMe 2010-12-15 20:39:47
@NotMe: Я знаю, что это немного более ясно из того, что вы имели в виду, но есть способы включить файлы конфигурации библиотеки. Дайте им уникальное имя, скопируйте их в выходной каталог и добавьте app.config вашего проекта запуска в качестве внешней ссылки. – Flater 2017-12-04 16:59:22