5

Я хотел бы прочитать часть моего консольного приложения appSettings из внешнего файла конфигурации, например, secrets.config, а остальная часть его я хотел бы прочитать из app.config.Прочтите часть appSettings из внешнего файла конфигурации

В настоящее время у меня есть это настроение, но кажется, что он не читает с secrets.config, и он даже не говорит мне о прочтении.

В моем app.config

<appSettings file = "secrets.config"> 
    <add key = "Foo" value = "Bar" /> 
</appSettings> 

В secrets.config, который находится в той же папке, app.config

<appSettings> 
    <add key = "Secret" value = "Tiger" /> 
</appSettings> 

В моем коде

var secret = ConfigurationManager.AppSettings["Secret"]; 

// secret turns out to be null 
+0

Возможный дубликат [ConfigurationManager.AppSettings использовать другой конфигурационный файл] (http://stackoverflow.com/questions/16425407/configurationmanager-appsettings -use-another-config-file) –

+1

Хм, извините, просто понял, что вы уже взяли один из подходов, подробно описанный в ответе на этот вопрос. –

ответ

2

Оказывается, я писал путь внешнего файла как неправильный путь.

Из документации on this page:

Путь задается относительно основного конфигурационного файла. Для приложения Windows Forms это будет двоичная папка (например,/bin/debug), а не местоположение файла конфигурации приложения. Для приложений Web Forms путь относится к корню приложения, где находится файл web.config.

Я изменил путь к следующему на ней работали:

<appSettings file = "..\..\secrets.config"> 
</appSettings> 
+1

То же самое работало для меня. Если app.SECRETS.config находится рядом с app.config. т.е. '' –

+0

Немного поздно для вечеринки, но вы могли бы заставить его работать, не изменяя путь, указав Visual Studio на копирование файла на выходную папку на сборке. Это делается путем щелчка правой кнопкой мыши по файлу в обозревателе решений> Свойства, а затем Копировать в каталог вывода = Копировать, если он более поздний или Копировать всегда. –

Смежные вопросы