c# Settings 保存位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# Settings 保存位置相关的知识,希望对你有一定的参考价值。

环境:vs8.net2.0 类型winform
请问程序的配置信息到底保存在哪了?
有人说过被打包进EXE了,很搞笑的,我把pe复制到别的地方配置就丢了
我也考虑过在DEBUG目录下的config.xml,复制过去好像也没用
难道是存注册表了?
还有一问答得让我看顺眼可加分:
Properties.Settings.Default是默认的配置集,可否建立多份配置呢?能则如何建?
要满足多份配置类中成员都不一样
哎,那个exe.config在编译以后根本是没用的拜托,我把整个目录换个地方或者改个名字配置就丢了
看来是没有什么简单的办法了
christiankula: 那是单个参数的属性,User是可读可写,否则好像是只读,和我所述的问题好像无关

应用程序配置文件(指的是exe的那种程序)在应用程序所在目录下面,比如你的程序叫app.exe,那么你的配置文件就必须叫app.exe.config,因为.net配置文件的默认映射规则就是这样的,<应用程序名称>.exe.config。

Properties.Settings.Default是Visual Studio生成的,并不是.net自身就有的,你可以参看designer源代码,可以知道他是从ApplicationSettingsBase继承来的,你也可以自己写类继承自他,那么如果你注入修改他查找配置文件路径的方式,你就可以创造自己的一套配置文件存储策略。可以参看SettingsProvider类,他是一个设置文件提供程序,你可以从网络甚至数据库来提供配置。

回答补充:
你修改目录和更改名字当然会没用了,我不是说配置文件的名字是和程序名字要相关的么?你要想做自定义的配置,就只能实现自己的一套配置系统,使用IO进行读取,要么就扩展.NET的配置框架如我所说提供Provider类来修改他的行为
参考技术A 其实保存到APPDATA目录里面了。
最近运行了微软的关于setting的示例项目,百思不得其解,结果在APPDATA目录里面找到了。
比如我运行了SettingsAndResources.exe程序,结果在 C:\Users\Administrator\AppData\Local\Microsoft 目录里面找到了一个名为 “SettingsAndResources.exe_Url_sz1lzbv5vmyxb4mzdwnvjjce2w2lxr2v”的目录,在这个目录里面有保存的配置信息,但是不知后缀的字码是什么意思。希望有大神释疑。
参考技术B C#中的设置包括应用程序级别的和用户级别的,实际上并没有打包到exe中,是以xml格式的文件存到本地磁盘上的,具体位置跟系统有关,win7的好像是C:\Users\USERNAME\AppData\Local\APPNAME下的一个user.config中。
参考http://msdn.microsoft.com/en-us/aa730869(zh-cn,VS.80).aspx
参考技术C Application级的还是User级的啊?不一样的 参考技术D 配置文件,你可以手动添加,
就是.config类型

以上是关于c# Settings 保存位置的主要内容,如果未能解决你的问题,请参考以下文章

在资源中保存字符串值 [C#] 编辑:不是资源,而是 Properties.Settings

C#各种配置文件使用,操作方法总结

在 C# 中使用设置类

.NET 将配置设置保存到 PerUserRoaming 位置

Unity C# 从字节加载图像

QML Settings 小的示例