在winform的安装工具中,少不免有一些配置文件要放到app.config去,于是修改也是成了一种需求!
无论是修改web.config还是app.config,普遍方式都有两种,用net自带封装的类,或是自定义xml操作。
可参考之前的一篇:网站安装打包 webconfig修改[三]
这里用的,还是以xml方式操作,比竟类都写了,就顺路用上了。
这里的操作方式和webconfig的差不多一个样:
![ExpandedBlockStart.gif](http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif?x-oss-process=image/resize,w_1400/format,webp)
string
appConfigPath
=
startPath
+
"
/XXX.exe.config
"
;
WebConfigHelper appConfig = new WebConfigHelper(appConfigPath);
if (appConfig.LoadIsOK)
{
WebConfigAppSetting appSetting = appConfig.AppSetting;
if (appSetting != null )
{
appSetting.Set( " SoftSetup_WinRARSystemPath " , txtSoftSetup_WinRARSystemPath.Text);
appSetting.Set( " SoftSetup_IISPath " , txtSoftSetup_IISPath.Text.Replace(startPath, "" ));
}
if (appConfig.Save())
{
ConfigurationManager.RefreshSection( " appSettings " );
MessageBox.Show( " 修改成功! " ); return ;
}
}
MessageBox.Show( " 修改失败! " );
WebConfigHelper appConfig = new WebConfigHelper(appConfigPath);
if (appConfig.LoadIsOK)
{
WebConfigAppSetting appSetting = appConfig.AppSetting;
if (appSetting != null )
{
appSetting.Set( " SoftSetup_WinRARSystemPath " , txtSoftSetup_WinRARSystemPath.Text);
appSetting.Set( " SoftSetup_IISPath " , txtSoftSetup_IISPath.Text.Replace(startPath, "" ));
}
if (appConfig.Save())
{
ConfigurationManager.RefreshSection( " appSettings " );
MessageBox.Show( " 修改成功! " ); return ;
}
}
MessageBox.Show( " 修改失败! " );
这里最值得一提的一句是:ConfigurationManager.RefreshSection("appSettings");
修改完app.config时,虽然是修改了文件,但运行在内存中的app.config却还没有修改.
所以你改完文件,再取值,还是内存中的旧值,因此修改完后,需要重新加载一下。
打完,收工!
版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:
http://www.cnblogs.com/cyq1162/archive/2010/01/28/1658033.html