C# 正确使用app.config

C# 正确使用app.config,c#,app-config,manifest,C#,App Config,Manifest,在几个C#项目中,我一直在使用app.config文件向我的程序传递各种设置,如连接字符串、功率级别等 然而,有时我会遇到设置未按预期更新的情况,并且我得出结论,我对app.config文件的正确使用并不是很了解 例如: 在不更改exe.config的情况下,将.exe文件替换为输出目录的新版本(设置不同),会导致程序看到硬编码设置,而不是现有.exe.config的设置 因此,我的问题是: exe.manifest文件的确切角色是什么 每次我创建一个新的.exe文件时,我是否必须在输出文

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

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

例如:

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

  • exe.manifest文件的确切角色是什么
  • 每次我创建一个新的.exe文件时,我是否必须在输出文件夹中粘贴除.exe文件之外的任何其他文件
  • 通过以下方式获得设置值有什么区别:
    ConfigurationManager.'settingName'…
    而不是:
    Properties.Settings.Default.“settingName”
  • app.config
    构建操作的角色是什么

抱歉,如果我在一个问题中问得太多。

关于这一点,有很多参考资料

以及(更好的)概述:


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

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

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文件中的值初始化

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

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

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

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