我有一个带<appSettings>
标记的配置文件。我希望它们中的一些是常量,并从另一个配置文件加载其中一些。
的Web.config:
<appSettings>
<add key="commonKey1" value="commonValue1" />
<add key="commonKey2" value="commonValue2" />
<add key="commonKey3" value="commonValue3" />
<!-- ??? -->
</appSettings>
AdditionalSettings.config
<appSettings>
<add key="AdditionalKey1" value="AdditionalValue1" />
<add key="AdditionalKey2" value="AdditionalValue2" />
</appSettings>
结果:编译后的Web.config
应该是这样的:
<appSettings>
<add key="commonKey1" value="commonValue1" />
<add key="commonKey2" value="commonValue2" />
<add key="commonKey3" value="commonValue3" />
<add key="AdditionalKey1" value="AdditionalValue1" />
<add key="AdditionalKey2" value="AdditionalValue2" />
</appSettings>
如果所有值都存储在单独的文件中,则非常容易:
<appSettings configSource="Settings.config" />
但我不知道如果基本文件中应该存在某些标记,如何合并两个文件,并且只应从单独的标记中加载其他标记。
我也试过
<appSettings configSource="Settings.config">
<add key="commonKey1" value="commonValue1" />
<add key="commonKey2" value="commonValue2" />
... etc
但它不起作用:A section using 'configSource' may contain no other attributes or elements.
当然我也不能只创建两个标签(一个具有具体值,另一个具有configSource),结果是:
There is a duplicate 'system.web.extensions/scripting/scriptResourceHandler' section defined
有人可以帮忙吗?它是否可能,或者还有另一种解决问题的方法?
答案 0 :(得分:4)
在浪费太多时间之后,我来到了灵魂:
<appSettings configSource="Settings.config">
<add key="commonKey1" value="commonValue1" />
<add key="commonKey2" value="commonValue2" />
... etc
是非法的,但是:
<appSettings file="Settings.config">
<add key="commonKey1" value="commonValue1" />
<add key="commonKey2" value="commonValue2" />
... etc
非常好......所以这一切都归结为将configSource
属性更改为file
属性。现在它工作正常。