winform多项目app.config使用问题

我的解决方案结构如下:mainABmain中引用A、B项目现在A项目中的一些实施时可能需要修改的配置信息放在A项目的app.config中,生成A项目时在A\bin\de... 我的解决方案结构如下: main A B main中引用A、B项目现在A项目中的一些实施时可能需要修改的配置信息放在A项目的app.config中,生成A项目时在A\bin\debug下生成了A.dll.config,其中包含A项目的可配置内容。 A.dll.config内容如下:
生成整个解决方案时,main\bin\debug中仅有新生成的A.dll、B.dll,而没有A.dll.config;这就是第一个问题,生成时子项目配置文件未自动生成到main中;此时我手工把A.dll.config复制到main\bin\debug下,启动主项目main,在程序中调用A项目的界面,界面中的程序中调取 string settingString = ConfigurationManager.AppSettings[“aaa”]; 此时结果为settingString=null 问题二出现了,程序似乎得不到配置值。请各位大神帮忙解决,已经焦灼一天了~~~~~~~~~
我们老大是想把界面中的汉字部分(如按钮标签,提示信息等)都做在config中,而不是打包进DLL里,以此实现实施项目时进行个性化配置,如果想实现以上需求,还有其他方法吗?
展开
 我来答
makosharp
2014-01-23 · TA获得超过676个赞
知道小有建树答主
回答量:188
采纳率:100%
帮助的人:269万
展开全部
先解释你遇到的两个问题。

问题一:链接库项目的app.config文件默认是不会复制到引用者的输出目录的。即使你在A项目中修改app.config的属性“复制到输出目录”为始终复制或者较新复制,在A项目的输出中会有预期的app.config和A.dll.config,但是在main的输出目录只会有app.config而没有A.dll.config。请手动复制。

问题二:VS自身没有智能拼接多个配置文件的功能,而且ConfigurationManager指向的是默认的应用程序配置文件而非你拷贝过去的A.dll.config,所以你这样是取不到值的。要想读取A.dll.config,请使用如下代码手动加载配置文件:
Configuration config = ConfigurationManager.OpenExeConfiguration("A.dll.config");
然后可以使用config.AppSettings["...."]读取。

关于你的预期目标,我个人的建议是如果只存本地化数据的话,不要使用配置文件,你可以选用Settings绑定,或者自写Xml都可以在外部进行更改同时又能直接作为“内容”生成到输出目录。

如果你的链接库本身就逃不开config文件,那就只好动手复制一下了。

如有疑问请追问。希望能帮到你。
沈红伟
2014-01-23 · 超过33用户采纳过TA的回答
知道答主
回答量:184
采纳率:100%
帮助的人:36.4万
展开全部
用ini文件存储汉字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式