这代码以前运行都很正常的, 今天突然不正常了 , 请问有哪些原因
string newConfigFilePath = Path.Combine(Application.StartupPath, "config\\MyApp.config");
if (!System.IO.File.Exists(newConfigFilePath))
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.SaveAs(newConfigFilePath);
}
if (System.AppDomain.CurrentDomain.SetupInformation.ConfigurationFile != newConfigFilePath)
{ AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", newConfigFilePath); }
txtstatus.Text = System.Configuration.ConfigurationManager.AppSettings["SMSSpCode"];
现在txtstatus死活都是空, 但是 SMSSpCode这个节点是有值的.
另外 config.SaveAs 也能把AppSettings的值更新, 但是就是读不出来
------解决思路----------------------
Application.StartupPath
叫你用这个,这个受其他影响的
用 AppDomain.CurrentDomain.BaseDirectory来定位物理路径
------解决思路----------------------
设置该配置文件为始终复制,经测试,用x86模式可以获取到值
------解决思路----------------------
配置文件生成到指定位置了?
------解决思路----------------------
程序启动时你的appsettings中有值吗,还是说你是启动后通过程序写进去的?如果是后者,可能需要刷新一下
ConfigurationManager.RefreshSection("appSettings"); 然后再读取新值