将app.config的一个部分移动到单独的文件中

10

为了让我的应用程序更加易于管理,我需要将app.config文件中的"runtime"元素放在单独的文件中。

尝试了一些方法,比如:

<runtime file="runtime.conf" />

并且也

<runtime configFile="runtime.conf" />

同时在 runtime.conf 文件中我有如下配置:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">  
            .......
    </assemblyBinding>
</runtime>

但它被忽略了......

有没有办法找出问题所在。

当我直接将runtime部分复制到app.config中时,当然可以工作。

我在某处发现,当使用configFile="..."时,包含的文件必须位于子目录中。我尝试过,但它也不起作用......

似乎包含对于运行时部分不起作用。


一个缺点是 asp.net 运行时无法检测外部文件(如 runtime.config)何时发生更改。在 runtime.config 更改后,您是否无法获取值? - undefined
1
有关此问题的最终解决方案吗? - Kiquenet
4个回答

4

很遗憾,因为这正是一个有很多样板“配置”在解决方案中的各个项目中可能会重复的部分... :-( - Medinoc

2

无法使其与WCF应用程序一起工作。您在sharedConfig.xml中放置了什么?您是否重复使用“assemblybinding”根元素?还是根元素是“runtime”部分?谢谢 - Fabske
我从未使用过它。这个例子来自上述的文档。 - cezarypiatek

2

你好,你的runtime.conf文件是否在应用程序的bin文件夹中


它恰好在 app.config 所在的目录中。 - RomanT
但是app.config通常被复制到bin目录下作为<appname>.exe.config。在您构建时,你的runtime.config是否也被复制到了bin文件夹中呢? - Rune FS
这应该被标记为正确答案。我遇到了完全相同的问题。我将“复制到输出目录”更改为“始终复制”,然后它就起作用了。 - Eric

1

试试这个:

<runtime configSource="runtime.conf"/>

不幸的是,结果一样。我首先尝试使用configSource,然后也尝试了"file"并将代码复制到我的答案中...但最初应该是"configSource",它简单地忽略了它,该死:D - RomanT
理论上来说,这是指定正确属性的方法,但运行时是一个特殊情况,它不会读取configSource的值。这是从测试中学到的。 - jeffreypriebe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接