ConfigurationManager.RefreshSection(“AppSettings”)不起作用

时间:2010-06-22 13:17:36

标签: c# configuration clickonce app-config environment

我正在尝试获取(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,并相应地使用它们。

这真的应该简单得多。

由于

赖安

3 个答案:

答案 0 :(得分:2)

Here是来自Microsoft的ClickOnce产品负责人的博客文章,其中介绍了处理不同构建配置的app.config文件的方法。希望它有所帮助。

答案 1 :(得分:0)

我很确定你无法通过ClickOnce安装访问沙盒区域之外的东西。

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

如果说我错了,我也很想知道答案:)

答案 2 :(得分:0)

您是否传递了正确的参数我注意到您有资金AppSettings而不是appSettings