【发布时间】:2014-02-07 12:13:22
【问题描述】:
我对 C# 中的 AppSettings 有疑问。 首先,我将描述我的情况。
我的解决方案由一个可执行程序program.exe 和一个assembly.dll 组成。
程序引用程序集并使用它。程序集项目具有使用 Visual Studio 项目设置管理器设置的应用程序设置。现在,当我在 assembly\bin\release 文件夹中编译我的解决方案时,有一个 assembly.dll.config 文件,其中包含我之前设置的设置。
现在我不明白的是:在我引用assembly.dll 的程序项目中,我检查了CopyLocal=True,但在我的program\bin\release 文件夹中只有assembly.dll,但没有程序集。 dll.config 文件但assembly.dll 仍然知道我在程序集项目应用程序设置中设置的设置。
现在看了好几遍,程序集总是访问可执行程序的设置,但程序没有相应的设置,那么为什么在没有assembly.dll.config文件存在的情况下,程序集知道正确的设置?
我假设设置在编译时编译到程序集中(当然),但是在我的 assembly\bin\release 文件夹中实际上存在一个 assembly.dll.config 文件是没有意义的。
我尝试将此文件复制到我的program\bin\release 文件夹中,assembly.dll 在构建操作中被复制到该文件夹中,但assembly.dll 会忽略同一文件夹中是否存在assembly.dll.config 文件。它总是使用编译时的设置。我只是不明白assembly.dll.config 文件的使用。为什么在它对 assembly.dll´s 行为没有影响的情况下会创建它?
【问题讨论】:
-
你那里也有 program.exe.config 文件吗?是否已将设置合并到其中?
-
是的,我的 program.exe 也有一个配置文件,但它只包含程序的配置。它们与组件的配置完全不同,所以我可以肯定地说。
标签: c# xml configuration-files