【问题标题】:How does .Net handle config files in all projects of a solution?.Net 如何处理解决方案的所有项目中的配置文件?
【发布时间】:2019-01-11 10:27:56
【问题描述】:

假设有一个带有 2 个类库项目的 .Net 解决方案:一个是数据访问层,另一个是业务逻辑层。这些项目有一个app.config 文件。还有一个 Web 项目和一个 Windows 窗体项目,每个项目都有自己的配置文件,即分别为 app.configweb.config

现在,如果我将 Windows 窗体项目设置为启动项目,运行它并通过 ConfigurationSettings.AppSettings.Get("Some-key") 检查设置,结果我只能访问 Windows 窗体设置,这意味着我必须将所有此文件中的应用程序设置。另外,我需要复制web.config 中的设置(我仍然不确定这是预期的行为,或者我必须以不同的方式做事。有人可以在这里解释一下吗?)

我的问题是:在相关项目中分发应用程序配置是否有意义(例如在数据访问项目配置文件中保留数据库连接字符串)?

如果是,那么我们如何从另一个程序集访问一个程序集的设置?

如果不是,.Net 为什么要为不可执行的项目创建配置文件?

第三个问题:有没有一种简洁的方式来整合配置文件?

【问题讨论】:

    标签: .net


    【解决方案1】:

    在相关项目中分发应用程序配置是否有意义(例如在数据访问项目配置文件中保留数据库连接字符串)?

    否 - 它们将被忽略。只会使用 executing 程序集的配置文件(除非有任何特殊设置来导入其他配置等)

    那么我们如何从另一个程序集访问一个程序集的设置?

    程序集未配置; 应用程序是。这就是为什么app.config 不仅应该包含配置可执行文件所需的所有信息,还应该包含配置所有相关程序集所需的所有信息。

    .Net 为什么要为不可执行的项目创建配置文件?

    所以你有一个例子来了解程序集使用什么设置。

    有没有一种简洁的方法来整合配置文件?

    那里有一些工具和技巧可以使它更容易一些(随意搜索),但根据我的经验,将生成的程序集中的设置复制/粘贴到可执行项目配置中并不太麻烦。另外,我经常为每个项目(用于开发/测试/生产环境)多个配置不同的配置,因此在这些类型的场景中自动生成主项目配置可能会变得复杂。

    【讨论】:

      【解决方案2】:

      如果您想为多个项目创建一个通用配置文件,请使用配置文件创建一个类库项目,并为您的应用设置创建公共属性作为其他项目可用的公共属性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-16
        • 2022-11-11
        • 2011-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多