【问题标题】:Using app.config correctly正确使用 app.config
【发布时间】:2014-04-23 10:30:45
【问题描述】:

在几个 C# 项目中,我一直在使用 app.config 文件将各种设置传递给我的程序,例如连接字符串、功率级别等设置。

但有时我会遇到设置未按预期更新的情况,我得出的结论是,我对正确使用 app.config 文件不是很了解。

例子:

  • 在不更改 exe.config 的情况下将 .exe 文件替换为新版本(其中设置不同)到输出目录,导致程序看到硬编码设置而不是现有 .exe.config 的设置

所以我的问题是:

  • exe.manifest文件的具体作用是什么
  • 每次我创建一个新的 .exe 时,我是否必须在输出文件夹中粘贴除 .exe 文件之外的任何其他内容?
  • 通过ConfigurationManager.'settingName'...获取设置值有什么区别而不是: Properties.Settings.Default.'settingName'?
  • app.configbuild action的作用是什么?

对不起,如果我在一个问题中问的太多。

【问题讨论】:

    标签: c# app-config manifest


    【解决方案1】:

    app.config 文件是在运行相关应用程序时得到特殊处理的文件。如果您的可执行文件名为 MyApp.exe,则 app.config 文件应命名为 MyApp.exe.config。 app.config构建任务的作用是将项目中名为app.config的文件复制到输出目录下的MyApp.exe.config

    .NET 提供了读取文件内容的方法(它是 XML 格式),.NET 的各个部分将在此 XML 中查找不同的部分以提供配置。

    一个广泛使用的部分是您称为Properties.Settings.Default 的设置部分。此部分与为应用程序设置提供编辑器的 Visual Studio 一起使用。使用生成的类在代码中访问这些设置。添加设置将向此类添加一个属性,并且该属性是从 app.config 文件中的值初始化的。

    在 Visual Studio 编辑器中,您可以为设置设置一个值,您可以将其视为该设置的默认值。但是,如果您覆盖 app.config 文件中的值,则稍后将优先。这允许您在安装后修改 app.config 文件并使用修改后的设置重新运行应用程序。

    您还可以使用其他方法访问应用程序设置 app.config 文件,但我认为使用 Visual Studio 编辑器和代码生成的类是最好的方法。

    我不确定我是否完全理解您遇到的问题。如果您更新 MyApp.exe 并保持 MyApp.exe.config 不变,您应该不会看到应用程序使用的设置发生变化(当然,除非您重命名或更改了某些设置)。

    清单文件提供有关并行程序集的信息,并可用于请求提升权限等。这与 app.config 文件无关。

    【讨论】:

      【解决方案2】:

      关于这方面的资源相当多。

      http://msdn.microsoft.com/en-us/library/ms229689%28v=vs.90%29.aspx

      以及(更好的)概述:http://msdn.microsoft.com/en-us/library/k4s6c3a0%28v=vs.110%29.aspx

      app.config 是一个非常强大的工具。它解决了许多问题,例如版本控制、迁移、升级等,但这需要从上面的链接中深入阅读。

      【讨论】:

        【解决方案3】:

        也许你可以做的一件事是,如果你想在每次构建应用程序时只复制 .exe 文件,那就是制作一个 settings.ini 或 settings.txt 文件,将你的参数放在这个文件中(这不是秘密当然)并在您启动应用程序时从那里读取所有设置。 如果你有一个,你可以把你所有的连接字符串逻辑放在你的登录表单中......

        【讨论】:

          猜你喜欢
          • 2017-12-02
          • 2012-09-23
          • 1970-01-01
          • 2013-09-06
          • 1970-01-01
          • 2011-05-27
          • 1970-01-01
          • 2012-11-06
          • 2019-04-16
          相关资源
          最近更新 更多