【问题标题】:What is app.config for?app.config 是做什么用的?
【发布时间】:2010-11-28 17:44:52
【问题描述】:

Settings.settings 生成Settings.Designer.cs,它可能会生成app.config,然后将其作为Foo.exe.config 复制到输出目录。当我在没有配置文件的情况下分发应用程序时,似乎没有发生任何不好的事情。那么,那个文件是干什么用的呢?

【问题讨论】:

    标签: .net visual-studio


    【解决方案1】:

    如果您没有配置文件,它将使用设计器的默认值。但是,配置文件允许用户/管理员轻松更改设置 - 例如您与之交谈的服务器、主题等。如果您没有该文件,您希望将这些设置存储在哪里?

    您可以拥有每个用户的设置以及每个应用程序的设置,它们存储在不同的位置。

    【讨论】:

    • 哦,所以配置文件是为没有接口的应用程序配置自己的设置?
    • @CannibalSmith:如果你想创建自己的完整配置系统,包括存储等,那么你可以忽略 app.config。为什么要重新发明轮子?请注意,.NET 中的配置系统 可扩展的(因此理论上您可以将设置存储在注册表、数据库等中),但在这方面它有点令人困惑且记录不充分。
    • 我将设置存储在 Settings.settings 和 Properties.Settings.Default 中。他们真的去哪儿了,我不知道,但他们肯定不会去 app.config,因为,就像我说的,如果我删除那个文件,设置不会消失。
    • @CannibalSmith:对于应用程序范围设置,何时编辑它并不重要。我没有太多使用用户范围设置 - 从你的意思来看,听起来他们在第一次运行时就被复制了。
    • @Ekta:我猜你没有重建。
    【解决方案2】:

    应用程序配置文件包含特定于应用程序的设置。此文件包含公共语言运行时读取的配置设置(例如程序集绑定策略、远程处理对象等),以及应用程序可以读取的设置。

    【讨论】:

    • 是的,我已经阅读了手册,但是那个文件真的是干什么用的?
    • @CannibalSmith:正是这样 - 配置设置。我不明白你为什么感到困惑。
    • 当我删除它时,配置设置不会丢失。配置设置存储在 Users/Foo/AppData/BlahBlah 中的某处。
    • 这个文件是每个应用程序的配置文件,您可以在其中存储多个数据源连接(connectionStrings),多个键值对(appSettings),远程配置(system.runtime.remoting,您以前使用过远程处理吗?),频道等......
    • @CannibalSmith:只有用户设置存储在那里。应用程序范围的设置存储在 app.config 中。如果文件不存在,则使用默认值。
    【解决方案3】:

    配置文件是可选的,如果它不存在,如 ASP.NET 等环境将回退到存储在 .NET 系统目录中的 machine.config 文件以获取机器范围的默认值。

    如果您实际上将代码添加到您的应用程序以从配置文件中检索设置(例如使用 ConfigurationManager 类)并且它不存在,您将收到空值。

    这就是为什么检查这种情况并让您的应用程序自行决定如何/是否继续的原因。

    【讨论】:

      【解决方案4】:

      您可以将配置存储在该文件中。

      .Net 框架会自动加载一个带有 exe-name.config 的配置文件。

      如果您在应用程序中不使用任何配置,那么就不会发生任何不好的事情...

      【讨论】:

        猜你喜欢
        • 2012-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-29
        • 2011-08-24
        • 2023-04-03
        • 2014-03-04
        相关资源
        最近更新 更多