【发布时间】:2012-06-17 19:35:47
【问题描述】:
我有一个测试项目,带有一个App.config,它为某些设置设置了默认值。我想在本地级别覆盖这些设置,以便每个开发人员都可以使用自己的凭据。
在我的 App.config 中,我有以下内容:
<appSettings file="Local.config">
<add key="Username" value="USERNAME"/>
<add key="Password" value="PASSWORD"/>
</appSettings>
在 Local.config 中(在同一目录中)我有以下内容:
<appSettings>
<add key="Username" value="wayne"/>
<add key="Password" value="secret"/>
</appSettings>
当我运行测试时,我希望获取 Username 的值会从 Local.config 返回“wayne”;相反,它是 App.config 中的“用户名”——似乎它实际上并没有检测到我想覆盖另一个文件中的设置。
我做错了什么?
【问题讨论】:
-
我相信这取决于您如何在代码中访问此值。我不是 100% 确定,但我不认为 Local.config 值会覆盖 App.Config 值,除非你在代码中告诉它这样做。
-
@AndrewHagner 您不必根据此(msdn.microsoft.com/en-us/library/aa903313%28v=VS.71%29.aspx)支付任何代码。但是,请尝试从 App.Config 中删除密钥。我认为 app.config 优先于 Local.config。不过我可能错了。
-
Local.config 应该优先。我不想问,但是您确定将 Local.config 复制到输出目录吗?
-
@xelco52 哈哈,我敢打赌就是这样。显示我使用多个配置文件的频率:) 将其添加为答案,我会标记它。
标签: c# app-config