日期:2014-05-20  浏览次数:20881 次

winform程序app.vshost.exe.config配置问题
编写了一个winform应用程序,用户要求系统的数据库位置可自己指定(数据库用的是Access)。
由于在系统运行时查找数据库路径保存在app.config文件的connectionStrings节点中
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\db.mdb"
于是在用户指定数据库路径时,用代码修改了app.config文件connectionString中datasource的信息(核心是路径)。
在运行程序时,如果数据是通过执行sql语句获得的,连接数据库正常,但如果是通过设计时新建的数据集的方式连接数据库,就会发生错误,提示数据库连接的路径是设计时的路径,而不是修改app.config后的路径。
花了一天时间查找问题所在,终于发现问题出在应用程序名.vshost.exe.config文件上。
在应用程序安装目录下有两个.config文件,一个是 应程序名.exe.config,另一个是 应用程序名.vshost.exe.config,代码修改的只是 .exe.config文件中的数据库路径,而没有修改 应用程序名.vshost.exe.config中的路径,才发生了这样的错误。如果手动将应用程序名.vshost.exe.config中的路径修改后,程序运行才正常。
请问这是怎么回事,如何能一并把 应用程序名.vshost.exe.config中数据库的路径也修改了。
在线等,谢谢!

------解决方案--------------------
请注意, App.Config 的值可以理解在内存中静态的,也就是说,一般程序运行了,这个值是不会更新的.

其实达到这个功能有更好的办法, 没有必要一定要去修改config文件

比如就按照你的思路修改,但是在取用时,还是使用变量里保存的路径