【问题标题】:How to set the app.config file for the current assembly in C#?如何在 C# 中为当前程序集设置 app.config 文件?
【发布时间】:2014-05-07 13:23:42
【问题描述】:

我已将 dll 与服务 (exe) 集成在一起。该 dll 有自己的 app.config 文件。但是对于任何键/值引用的 dll 中的代码,它总是引用 exe 的配置文件而不是 dll 的配置文件。如何将 dll 的配置文件设置为当前文件,以便仅在从 dll 代码内部引用时使用?

【问题讨论】:

    标签: c# app-config


    【解决方案1】:

    DLL(或库文件)不能有自己的配置文件。它将始终使用“托管”应用程序配置文件。

    DLL 的全部意义在于它可以被许多不同的应用程序使用,并且它本身没有配置。相反,它的“主机”将包含配置信息,因此这是“设计使然”。

    【讨论】:

    • 为澄清起见,当您说“宿主应用程序”时,您的意思是启动项目的主要条目?
    【解决方案2】:

    当您的解决方案包含多个项目时,您可以在任一项目中添加app.config;但是当您编译代码以生成最终输出时,您只会得到一个名为 <exeFileName>.exe.config 的配置文件。这是应用程序运行时 WinForms 框架将读取的唯一配置文件。

    如果您的 DLL(.NET 中的程序集)指定自己的配置文件,这些配置文件将不会成为最终输出(相应程序集)的一部分。

    要包含项目特定配置文件中的设置,您必须将这些配置条目(appSettings、connectionString 等)添加到主应用程序的配置文件中。

    DLL 也可以从主应用程序的配置文件中读取。因此,当您在 <exeFileName>.exe.config 文件中创建这些条目时,加载的所有 DLL 都可以从文件中读取值。

    注意:请注意为每个 DLL 的键使用唯一名称,因为使用键读取配置值。

    【讨论】:

      猜你喜欢
      • 2011-12-13
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-11
      • 1970-01-01
      相关资源
      最近更新 更多