在winform的安装工具中,少不免有一些配置文件要放到app.config去,于是修改也是成了一种需求!
无论是修改web.config还是app.config,普遍方式都有两种,用net自带封装的类,或是自定义xml操作。
可参考之前的一篇:网站安装打包 webconfig修改[三]
这里用的,还是以xml方式操作,比竟类都写了,就顺路用上了。
这里的操作方式和webconfig的差不多一个样:

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却还没有修改.
所以你改完文件,再取值,还是内存中的旧值,因此修改完后,需要重新加载一下。
打完,收工!
版权声明:本文原创发表于 博客园,作者为 路过秋天 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。 |
个人微信公众号![]() |
Donation(扫码支持作者):支付宝:![]() |
Donation(扫码支持作者):微信:![]() |
![]() |
分类:
.NET 系列 / 网站安装打包
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)