ConfigurationManager.RefreshSection ("AppSettings") не работает - PullRequest
2 голосов
/ 22 июня 2010

Я пытаюсь заставить приложение (развернутый ClickOnce) читать файл конфигурации не по умолчанию, в зависимости от переменной среды, установленной в

_envName = System.Environment.GetEnvironmentVariable("ENV");
if (_envName == null)
    throw new Exception ("The ENV environemnt variable must be set");

string envFileName = "app." + _envName.ToLower() + ".config";

System.Configuration.Configuration config = 
     ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.File = envFileName;

config.Save(ConfigurationSaveMode.Full);
ConfigurationManager.RefreshSection("AppSettings");

Это не работает! то есть, если ENV varibale ENV установлен на dvlp, код выполняется, но значения в файле app.dvlp.config недоступны.

Кто-нибудь может понять, почему это не работает? Или предложите способ, которым я могу иметь отдельные файлы, app.xxx.config для каждой среды / машины и использовать их соответственно.

Это действительно должно быть намного проще.

Спасибо

Ryan

Ответы [ 3 ]

2 голосов
/ 22 июня 2010

Здесь - это статья в блоге от Microsoft по продукту ClickOnce, в которой описан способ обработки файлов app.config для различных конфигураций сборки. Надеюсь, это поможет.

0 голосов
/ 11 июня 2012

вы передаете правильный параметр Я заметил, что у вас есть прописные AppSettings, а не appSettings

0 голосов
/ 22 июня 2010

Я почти уверен, что вы не можете получить доступ к вещам за пределами своей области в песочнице с установкой ClickOnce.

http://msdn.microsoft.com/en-us/library/d8saf4wy.aspx

Если я ошибаюсь, ялюблю знать ответ тоже :) 1006 *

...