2010-06-22 18 views
2

J'essaie d'obtenir une application (ClickOnce déployée) pour lire le fichier de configuration par défaut, en fonction d'un environnement variable initialisée sur laConfigurationManager.RefreshSection (« AppSettings ») ne fonctionne pas

_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"); 

Cela ne fonctionne pas! c'est-à-dire que si ENV env varibale est défini sur dvlp, le code s'exécute, mais les valeurs dans le fichier app.dvlp.config ne sont pas accessibles.

Quelqu'un peut-il voir pourquoi cela ne fonctionne pas? Ou suggérez un moyen d'avoir des fichiers séparés, app.xxx.config pour chaque environnement/machine et de les utiliser en conséquence.

Cela devrait vraiment être beaucoup plus simple.

Merci

Ryan

Répondre

2

Here est un article de blog de la tête de produit chez Microsoft ClickOnce avec une façon de gérer l'application. fichiers de configuration pour différentes configurations de construction. J'espère que cela aide.

0

passez-vous le bon paramètre J'ai remarqué que vous avez des AppSettings de capital pas appSettings