.NET修改配置文件
首先说明,本文参考了这个帖子http://www.cnblogs.com/henw/archive/2012/01/31/2333783.html,进行了一些补充
简要说来两种方法,一是把config文件当做xml文件处理,这样可以使用DOM,也可以使用linq to xml,下面的代码使用了DOM:
private void SetValue(String AppKey,String AppValue)
{
XmlDocument xDoc=new XmlDocument();
xDoc.Load(System.Windows.Forms.Application.ExecutablePath+".config");
XmlNode xNode;
XmlElement xElem1;
XmlElement xElem2;
xNode=xDoc.SelectSingleNode("configuration").SelectSingleNode("appSettings");
xElem1=(XmlElement)xNode.SelectSingleNode("add[@key='"+AppKey+"']");
if(xElem1!=null)
xElem1.SetAttribute("value",AppValue);
else
{
xElem2=xDoc.CreateElement("add");
xElem2.SetAttribute("key",AppKey);
xElem2.SetAttribute("value",AppValue);
xNode.AppendChild(xElem2);
}
xDoc.Save(System.Windows.Forms.Application.ExecutablePath+".config");
}
第二种就是使用.net提供System.Configuration
private void ChangeConfig()
{
Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
//添加
cfa.AppSettings.Settings.Add("key", "test2");
//修改
cfa.AppSettings.Settings["test"].Value = "test";
cfa.Save();
}
第二种方法更简洁,不过再说下,这两种方法修改的都是程序生成目录下的后缀为.exe.config的文件,我上传一张我的试验项目的生成目录图

我们要修改的应该是MailFormApp.exe.Config这个文件,而不是项目里的app.config,一些初次接触config的人不了解,可能就会认为这两种方法都无效。
第一种指定了文件路径,而且是把config文件当文件来处理,调试和直接运行exe都能达到效果。然而使用C#提供的方法就要注意了,由于调试时程序运行在vs里头,vs是程序的宿主,所以直接F5调试的时候其实使用的是MailFormApp.vshost.exe和MailFormApp.vshost.exe.Config,所以是无法修改MailFormApp.exe.Config的。关于.vshost.exe.Config这个文件,经过我测试,调试时是先将.exe.Config文件内容copy到.vshost.exe.Config再读取该文件,所以调试时无法做到修改配置文件。但是如果直接双击运行目标exe,可以发现可以正确修改.exe.Config文件的,所以要注意不要因为在调试发现配置文件没有改误认为该方法无效。另外MailFormApp.vshost.exe只是用来寄宿在vs里头的,无法直接双击运行。
.NET修改配置文件的更多相关文章
- 写给自己:修改配置文件一定要cp一个.bak
写给自己:修改配置文件一定要cp一个.bak 毕竟不是每次的修改都一定对,而且很多时候是在服务器上直接修改原文件,修改后重启服务才知道是否修改正确,如果不加备份修改,造成服务器动荡,将会造成不可挽回的 ...
- Asp.net使用代码修改配置文件的节点值
使用代码修改配置文件的方法: 1.打开配置文件写入的权限 2.先按节点名称长到要修改的节点,然后删除,紧接着将有新值的节点添加回去 3.关闭配置文件写入的权限 修改Appsetting节点的值,修改其 ...
- 3.SpringMVC修改配置文件路径和给界面传递数据
1.修改配置文件路径 达到 配置多文件的目的 web.xml文件中基础配置有springMVC配置的servlet路径 <servlet-name>SpringMVC</serv ...
- 在Openfire中使用自己的数据表之修改配置文件
目前我使用的Openfire版本是3.10.3,以下使用说明也是在这个版本上做的修改. Openfire提供了两种方式使用用户数据表.一种是安装完成之后默认实现的org.jivesoftware.op ...
- linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件
原创,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4555328.html 之前写过一篇<windows下Android利用ant自动编译.修改配置文件.批量 ...
- windows下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件
原创文章,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4535459.html android 程序打包成apk,如果在是命令行方式,一般都要经过如下步骤: 1.用a ...
- java web工程读取及修改配置文件
这篇博客比自己讲解的详细: http://blog.sina.com.cn/s/blog_69398ed9010191jg.html 使用方法: 1)配置文件在web-info的class目录下,或者 ...
- python查询修改配置文件功能
阅读目录 一.python查询功能代码 1.查询修改配置文件 global log 127.0.0.1 local2 daemon maxconn 256 log 127.0.0.1 local2 i ...
- Nginx学习系列三Nginx的启动、停止、修改配置文件后重启
1.启动Nginx 命令规则:Ngxin的安装地址 -c Nginx的安装地址下的配置文件地址 注意:一般都在root权限下进行Nginx的启动 2.停止Nginx (1).从容停止 第一步:查看Ng ...
- Docker部署Nginx并修改配置文件
Docker部署Nginx并修改配置文件 一.拉取nginx镜像 docker pull nginx 二.在宿主机中创建挂载目录 mkdir -p /data/nginx/{conf,conf.d,h ...
随机推荐
- python之-- 异常
异常处理: 语法:try: codeexcept (KeyError..可以写多个) as e: error为抓取的多个错误提示,e为错误信息 print(e) # 打印错误信息except (Ind ...
- jquery 关于ajax 及其son
<%@ page language="java" pageEncoding="UTF-8"%><%@include file="/c ...
- Cg入门6:函数2
内建函数分为四类: 1.数学函数 2.几何函数 3.纹理函数 4.导数函数:事实上就是片段函数
- 进程(WINAPI),遍历并查找树状的进程信息,实现控制系统进程
#include <TlHelp32.h> //检索系统全部进程 void showall() { PROCESSENTRY32 pe32 = {0}; pe32.dwSize = siz ...
- openwrt下载编译
1. 安装依赖包: yum install autoconf binutils bison bzip2 flex gawk gcc gcc-c++ gettext make ncurses-devel ...
- samba.conf (香港中华厨房有限公司实例)
# Sample configuration file for the Samba suite for Debian GNU/Linux. # # This is the main Samba con ...
- 关于rman duplicate 一些比較重要的知识点--系列三
FYI: http://docs.oracle.com/cd/E11882_01/backup.112/e10643/rcmsynta020.htm#RCMRF126 rman duplicate d ...
- Visual Studio Visual assistant注释也做拼写检查怎么办
1 打开Visual Assistant 2 在Advanced中找到Underlines,取消勾选"Underline spelling errors in comments and ...
- Selenium系列之--测试框架断言【转】
selenium提供了三种模式的断言:assert .verify.waitfor 1)Assert(断言) 失败时,该测试将终止. 2)Verify(验证) 失败时,该测试将继续执行,并将错误记入日 ...
- ubuntu下spring环境搭建
一.安装JDK 下载官网:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 部署: ...