【问题标题】:What happens to app.config in a referenced project引用项目中的 app.config 会发生什么
【发布时间】:2012-01-14 18:36:39
【问题描述】:

假设我有 2 个项目,其中项目 A 引用项目 B。项目 A 是 Web 应用程序项目,项目 B 是类库。

类库有一个 app.config 文件,其中存储了一些设置。当我编译项目 A 时,会在 bin 文件夹中创建 projectB.dll。

部署 Web 应用程序时 app.config 文件的内容会发生什么变化?设置是否编译到 ProjectB.dll 中?

是否可以使用反射器或 ILSpy 等工具检索 app.config 的内容?

【问题讨论】:

    标签: .net app-config


    【解决方案1】:

    您可以将app.config 添加到库项目中,但它未使用或包含在任何输出中。

    配置应在应用程序中完成,而不是在库中。所以你需要把有问题的配置放在你的 web 应用程序的 web.config 中,而不是放在库的 app.config 中。

    【讨论】:

    • 我意识到这是它应该做的方式。我正在查看一个遗留项目,其中 Web 引用位于类库中:/ 在进一步查看代码后,我发现 Web 服务的 URL 是以编程方式设置的,因此实际上并未使用 app.config 设置.由于您在回答中解释的内容,原始编码员可能会这样做。谢谢
    【解决方案2】:

    在运行时,您的项目 B 将使用您的 Web 应用程序项目(主机)的设置。所以你必须在 web.config 文件中重新复制你的设置。

    【讨论】:

      【解决方案3】:

      App.config 是配置,不是应用程序 - 所以它没有保存到 dll 中,它不能被反射器显示或反编译。

      您必须使用 Project A 的设置来配置 Project B(在 web.config 中,因为它是 Web 应用程序)。

      没有机制可以自动配置外部模块,除非它们具有编码的默认后备值。

      【讨论】:

      • 我遇到了一个问题,即类库将设置从 app.config(使用 settings.setting UI 创建)构建到 .dll 中,以及在引用库和调用属性时。 Settings.Default.. 它正在使用这些设置,而不是我的 ASP.NET MVC 4 项目中 web.config 中的最新设置。任何想法?这是我的问题:stackoverflow.com/q/54219286/1794106
      【解决方案4】:

      您的类库 B 的 App.config 变得无关紧要。如果您想使用那里的数据,您应该将所有内容复制到父应用程序的 app.config(在您的情况下为 web.config)。然后,您将能够使用 ConfigurationManager 从项目 A 和 B 访问它的内容

      【讨论】:

        猜你喜欢
        • 2011-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-18
        • 2014-03-03
        • 1970-01-01
        • 2023-01-03
        相关资源
        最近更新 更多